ふらっと C#,C♯,C#(初心者用) Part140

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 9e9f-LwdJ)
垢版 |
2018/10/04(木) 18:56:38.41ID:JnxMNCXd0
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■関連スレ
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part139
https://mevius.5ch.net/test/read.cgi/tech/1533466544/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/

■情報源
https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2018/12/02(日) 17:55:56.69ID:8Z0+kDxur
そもそもお漏らししてもいい案件だけやる
2018/12/02(日) 18:07:52.27ID:3wF0RuQO0
>>770
>>760が訊いてるのは悪意対策だろ…
2018/12/02(日) 19:18:46.11ID:wUrRop5j0
リフレクションって何?
2018/12/02(日) 20:03:59.45ID:Vovs5evr0
ggrks
2018/12/02(日) 22:24:30.53ID:h/Y7nr/g0
文字列を変数名として扱う仕組みのこと
2018/12/02(日) 22:36:49.76ID:AtVX1yZrM
>>774
答えられないなら黙ってればいいのに
2018/12/02(日) 22:42:42.22ID:HHTlCBKM0
>>776
それはお前も同じ
2018/12/03(月) 01:50:08.39ID:CtimMCgY0
>>777
え???
2018/12/03(月) 09:10:29.70ID:7GT4duU30
>>778
マジガイジかよ…
生ゴミはとっととくたばれ
2018/12/03(月) 10:30:31.17ID:58uLWeIid
>>779
お前がな
781デフォルトの名無しさん (ワッチョイ b39d-hzet)
垢版 |
2018/12/03(月) 14:27:17.52ID:1qcFF+t30
ClassA,ClassB,,,のインスタンスをJsonで保存したい。

Class Ihozon{
void init(){} //変数を初期化
string serialize(ClassA str){ }
ClassA deserialize( string json){ }
}
というインターフェースを作って保存処理は共通化したいと思うのだが、Serializeするのにクラス名の
引数が必要になるので共通化できない。こういう場合どうしたらいいの?
2018/12/03(月) 15:09:15.55ID:kXdIrz5+a
>>781
ちょっと何言ってるのかよく分からないところがあるので
勘違いかもしれないけど、普通にジェネリックメソッドにするだけじゃないの?

public static string JsonSerialize<T>(T obj) {...}
public static T JsonDeserialize<T>(string json) {...}
783デフォルトの名無しさん (ワッチョイ b39d-hzet)
垢版 |
2018/12/03(月) 15:51:51.32ID:1qcFF+t30
jeneric interface をつかったらいいんだね。できました。ありがとう。
2018/12/03(月) 16:33:19.27ID:k9BWMLgHp
インスタンスを保存して何か良い事あるのか?
言葉の違いなだけならいいが…クラス内の値を保存するんだよな?
クラスのある位置を示すポインタを保存するんじゃないんだよな?
2018/12/03(月) 16:45:46.51ID:wi/+8SfFd
>>784
アスペ
786デフォルトの名無しさん (ワッチョイ b39d-hzet)
垢版 |
2018/12/03(月) 17:31:56.17ID:1qcFF+t30
public interface Ijson<T> {
T deserialize(string json);
string serialize(T js);
void init();
}
public class ClassA : Ijson<ClassA>
{ }
ClassAをシリアライズしたいのだけでど、Interfaseするんはわかったんだが内部に
つねに class ClassFile{ void FileSave() {} void FileLoad(){} } を継承もしたい。
(中が固定なのでいちいち実装したくない)
ClassA A = new ClassA();
A.FileLoad(); // これでAはファイルデータで初期化したい。
継承とinterfaceを同時にやるってどうやるの?
2018/12/03(月) 17:49:03.84ID:PYYWjLDMd
System.Web.Mail.MailMessageクラスのFieldプロパティでCDOのFieldを追加してました。

System.Webは古いからSystem.Net.Mailを使えと警告が出るので置き換えようとしてみたところ、対応する方法が見つかりませんでした。
ご存知の方いないでしょうか。
788デフォルトの名無しさん (ワッチョイ b39d-hzet)
垢版 |
2018/12/03(月) 18:01:20.51ID:1qcFF+t30
>>786
自己解決:Interfaseやめてジェネリックのクラス使えばできました。
789デフォルトの名無しさん (ワッチョイ b39d-hzet)
垢版 |
2018/12/03(月) 21:15:19.45ID:1qcFF+t30
別のプロジェクトからCopy してきた Form1をNameSpace名をこのプロジェクトに
あわせて
var fm = new Form1();
fm.ShowDialg();
とやっても、空のフォームが立ち上がる。なぜなんだろう?
2018/12/03(月) 22:08:22.85ID:jwp068Q1a
>>789
エディタのキャッレットを
> var fm = new Form1();
この行のForm1の箇所に置いてF12を押す
2018/12/03(月) 22:10:11.00ID:yskaDDV40
>>786
もう解決してるみたいだけど、一応。
Interfaceと継承を指定する場合は、カンマ(,)で区切って並べるだけ。
792デフォルトの名無しさん (ワッチョイ b39d-hzet)
垢版 |
2018/12/04(火) 04:22:30.94ID:16QpsEK/0
>>790
ありがとう。解決しました。
InitializeCompornent();の呼び出しが消えていた。
なんでだろ。消した覚えはないんだけど。
793デフォルトの名無しさん (ワッチョイ b39d-hzet)
垢版 |
2018/12/04(火) 04:55:27.00ID:16QpsEK/0
>>791
interfaceを使えないかトライしてみましたが、どうもうまく行かないです。
ClassFileはIjsonをインターフェースする必要があって、Ijsonのinit()はClassAのプロパティや
変数の初期化なのでClassAの中でしか実装できません。なので
ClassFile:Ijson<ClassA>
ClassA:ClassFile<ClassA>
のような構成になります。しかし問題があります。
問題:ClassFileの中ではinit()は実装したくないのに、実装を余儀なくされるが、初期化したい変数は
ClassAの中にあるので困る。
794デフォルトの名無しさん (ワッチョイ b39d-hzet)
垢版 |
2018/12/04(火) 05:04:31.89ID:16QpsEK/0
clsAのインスタンスに代入する方法ってこれでいいのでしょうか?
public class clsA: clsJson <clsA>
{
public void ParamLoad() {
clsGamenParam v = this;
v = base.ParamLoad();
}
}

public class clsJson<T>{
public T ParamLoad(string IniName = "") {
T param = default (T);
param = deserialize(json);
return param;
}
}
2018/12/04(火) 10:13:14.55ID:4uTJLjzta
splitcontainerで上下分割してて、
最大化させてもpanel1の方は縦幅(height)は変わらないようにしたいのだけど
どのプロパティで設定できるのでしょうか
2018/12/04(火) 10:17:41.08ID:1iwBpvbbp
初期化を隠蔽したい?
なら隠しメンバーに初期化済みフラグを持つことだな。
2018/12/04(火) 10:29:22.89ID:P8iyvSfE0
>>795
FixedPanel
2018/12/04(火) 22:37:30.63ID:TaxB7EJj0
ピクチャーボックスに線を書くとか丸を書くとかした後にクリックで線を選択出来たりとかします?
エクセルで言うオートシェイプ見たいな感じで
2018/12/04(火) 22:40:16.97ID:zGwuExf2M
>>798
できません
2018/12/04(火) 22:41:05.29ID:LDdnm3po0
出来るよ
日本じゃコード例殆ど無いけど海外ならそこそこ見つかる
2018/12/04(火) 22:44:12.07ID:zGwuExf2M
そりゃスクラッチで作ればできるだろうな
>>798のような質問をしてるレベルならまず無理だが
2018/12/04(火) 23:34:36.38ID:S3l73Gw8a
>>798
円や直線みたいな単純な図形でアンチエイリアスとかも不要なら
確かVBer向けのシェイプコントロールってのがあったはずだから、それを使えば一発だね
http://www.atmarkit.co.jp/fdotnet/dotnettips/781winlineshape/winlineshape.html
描画するんじゃなくて子コントロールを加える形になると思うけど
2018/12/05(水) 13:01:06.99ID:6cU8181gd
シングルトンパターン実装が面倒だからstatic実装をしてしまう私は雑魚なのでしょうか
いつインスタンスが作られるかぐらいの差しかないんじゃないのぉぉぉお起動時に一度だけ呼ぶ使われ方ならぁぁぁあ
2018/12/05(水) 13:04:16.51ID:aXYPARRR0
ソロなら何でもいいよ
2018/12/05(水) 13:24:54.14ID:mkn+H/81M
>>803
グローバル変数を作る目的でシングルトンにするくらいなら、Globalクラスでも作ってそのstaticフィールドとして持たせて共有したほうがマシ
シングルトンが用いられる大抵のケースでは、アプリでクラスAのインスタンスが一つしか必要とされないという要件を、
誤ってクラスA側に持ち込んでしまい不必要な制限をクラスAに対して与えている
基本的にシングルトンはアンチパターンであり、使うべきではないと考えておけばいい
2018/12/05(水) 13:58:19.38ID:p3OBsqIWp
グローバル変数が必要になったケースというのが今までにない気がする
2018/12/05(水) 18:56:11.79ID:ZBoGDzWjM
ログとかデバッグ用情報とかあったほうがよくね?
引数にログ渡すのも面倒やし
2018/12/05(水) 19:00:23.97ID:ZBoGDzWjM
すべてのインスタンスをグローバル神クラスに突っ込む方法で管理してる現場も
案外良かったよ
リークの類に強いのがよかった
ひと目でわかるし
2018/12/05(水) 19:14:24.09ID:24zuz0jWa
>>803
C#のstaticクラス導入の理由の少なくとも一つがそれだったはずだから
いいんじゃないですか

>>805
おおむねその通りだと思うけど、質問の答えになってない気がするw
2018/12/05(水) 20:00:32.14ID:xXLuhtRv0
えーリソースひとつしか無いのにあちこちで呼ばれて困るわ。セマフォ使うにもシングルトンにしないと意味ないし。
2018/12/05(水) 21:40:54.86ID:9TXdxV+e0
そこでPrism.Unity等のDIコンテナですよ
2018/12/06(木) 17:22:48.54ID:PXx1OaoO0
そういやDIコンテナってどういう仕組みになってんのか全然わからん
コンストラクタの引数をインターフェイスにするだけで、登録済みのオブジェクトを自動的に注入してくれるわけだけど・・・・
あれってコンストラクタの呼び出し側は一体どんな仕組みになってるの?
そもそも引数のインターフェースを増やそうが減らそうがコンパイルエラーが起きないって、呼び出す側は一体どうなってるのかしら
2018/12/06(木) 17:34:01.28ID:hvLOwgvNM
>>812
普通にリフレクションで引数の情報取ったりコンストラクタ呼んでインスタンス作ったり簡単にできる
814デフォルトの名無しさん (ワッチョイ abeb-3M3s)
垢版 |
2018/12/06(木) 17:45:26.67ID:PXx1OaoO0
>>813
ありがとう
リフレクションは全然使ってなかったので勉強してくるよ
815デフォルトの名無しさん (ワッチョイ 899e-ZtDu)
垢版 |
2018/12/06(木) 23:07:45.72ID:LqRlvnk/0
リフレションとかバカしか使わないわ
2018/12/06(木) 23:24:16.18ID:8fboZWCH0
デバッグ用に良さそうと思ってたら
winformにそのものがあるしね
2018/12/06(木) 23:24:59.62ID:8KxpykpJ0
属性で使いまくってるじゃん
818デフォルトの名無しさん (ワッチョイ 899e-ZtDu)
垢版 |
2018/12/06(木) 23:47:06.96ID:LqRlvnk/0
リフレクションはウンコみたいな依存関係を作る元凶だからな
まともなヤツならまず使わない
2018/12/06(木) 23:55:23.28ID:FaxHPz5Y0
リフレクションは便利だよね
時々使うわ
2018/12/06(木) 23:57:45.21ID:cH+4Ya2yd
リフレクションは普通に使うわな
821デフォルトの名無しさん (ワッチョイ 899e-ZtDu)
垢版 |
2018/12/07(金) 00:12:46.91ID:0/x3pMw+0
こうやってクソみたいな依存関係のあるクソコードが量産されていくのがよくわかる
822デフォルトの名無しさん (ワッチョイ 899e-ZtDu)
垢版 |
2018/12/07(金) 00:14:25.89ID:0/x3pMw+0
AというオブジェクトからBというオブジェクトにアクセスする場合
よほどの理由がないかぎりBからAにアクセスすることは避けないといけない

できるだけコンポジションにするべき
この場合、AがBを内包するようにする

コレはシロウトでなければ常識の問題だからな
2018/12/07(金) 00:21:54.56ID:XLGZ01Wf0
リフレクション最高
これからも積極的に使おう
2018/12/07(金) 00:27:55.79ID:OtTuCL9w0
>>822
> AというオブジェクトからBというオブジェクトにアクセスする場合
> よほどの理由がないかぎりBからAにアクセスすることは避けないといけない
何で?

例えば俺がAでお前がBだったとする
俺からお前を殴るかもしれんし
お前から俺を殴るかもしれん

どちらにしろ
お前はすでに死んでいる
2018/12/07(金) 00:28:53.29ID:frCtIBO+0
おめえに俺はなぐれねえ
2018/12/07(金) 00:29:03.36ID:u+M3piYs0
>>815
おばか
827デフォルトの名無しさん (ワッチョイ 899e-ZtDu)
垢版 |
2018/12/07(金) 00:32:37.34ID:0/x3pMw+0
低学歴知恵遅れほど
継承とリフレクションをうれしがって多用するからな

まさに
オブジェクト指向に低学歴知恵遅れは
キチガイに刃物
2018/12/07(金) 00:37:33.94ID:UtwEaJZea
おじさんはこれを思い出した
https://youtu.be/YLhuSYTySVM
2018/12/07(金) 00:44:42.63ID:yHtgxfh3d
リフレクションを使わないソースコードなんて気の抜けたコーラだろ
2018/12/07(金) 01:12:03.95ID:u+M3piYs0
使ってることに気づいてないだけ
2018/12/07(金) 03:53:19.21ID:4tv6nv6l0
64bitの.NET Core でSQLite使いたい時はどれ落とせばいいんですか?
http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki

.NET Core用のは以下の1つしかないっぽいけど、これ使うと、"間違ったフォーマットのプログラムを読み込もうとしました。"とエラーが発生します。
Precompiled Binaries for the .NET Standard 2.0 (.NET Core 2.0)

過去の.net frameworkの経験上、bit違いでこのエラーが出るようなんですが、Core用SQLite.dllが上記しかないので、どうしようもない状態です。
2018/12/07(金) 07:11:23.20ID:u+M3piYs0
EF Coreのマイグレーションで自動生成したことしかないわ
833デフォルトの名無しさん (ワッチョイ 89f7-e/g/)
垢版 |
2018/12/07(金) 08:35:25.92ID:TvdhMF8B0
気ままにREFLECTION
2018/12/07(金) 08:37:40.31ID:2afnIVVGa
>>831
Coreなら尚更だけど、今時手動でDLLを入れるのはやめろ
NuGetで一発
2018/12/07(金) 08:55:42.95ID:CXp+sqegd
ああdllの話かw
こないだNuGet知らないやつがいて驚いたわ
2018/12/07(金) 09:11:59.73ID:t0xhrKmJM
リフレクションが止まらない
2018/12/07(金) 09:28:53.50ID:0Ncculaf0
>>831
UWPでは、System.Data.Sqliteとは別系統のMicrosoft.Data.SQliteというMSご謹製のライブラリがあるのでそっちを使ってください
ちなみにDapperはマトモ動きませんのでEF Core使うか直にADOやらないと駄目だけどね
2018/12/07(金) 10:45:05.23ID:CXp+sqegd
>>837
Dapperについて詳しく
2018/12/07(金) 11:26:29.25ID:7aBH+ygYp
リフレクションはgotoみたいな弊害があるって話?
2018/12/07(金) 11:35:57.70ID:cSzYN2du0
漏れは、様々なアプリから使うために、C:\sqlite3 に、すべてを入れているけど。
ただし、C# は使わないけど

sqlite3.def, sqlite3.dll, sqlite3.exe

sqldiff.exe, sqlite3_analyzer.exe
2018/12/07(金) 13:46:34.33ID:0JAGvuKR0
[ProgramFilesFolder]
あんたのアプリケーション.exe
[x64]
SqliteInterop.dll(64ビット)
[x86]
SqliteInterop.dll(32ビット)
2018/12/07(金) 19:36:33.84ID:0Ncculaf0
>>838
Debugモードで動いたけどReleaceモードにしたら落ちた
詳しく調べるのもめんどいからプロジェクトから削除してADO+EFにしたよ
843デフォルトの名無しさん (ワッチョイ 899e-ZtDu)
垢版 |
2018/12/07(金) 21:14:47.96ID:0/x3pMw+0
やっぱりバカはいまだにうるう秒がどういうもんなのかすら分かってない
低学歴っていちいち低学歴を自白するからな

そして低学歴の知ったかドイチェ語
すぐに分かるのが恐ろしいわ。。。
844デフォルトの名無しさん (ワッチョイ 899e-ZtDu)
垢版 |
2018/12/07(金) 21:21:23.93ID:0/x3pMw+0
>>843
コレは誤爆だ

リフレクションで問題になるのは
オブジェクトの依存関係になるのは常識だからな
2018/12/07(金) 22:48:18.29ID:r9qu/Drmd
リフレクションなしのコーディングなんて考えられんわ
2018/12/07(金) 22:49:15.01ID:oQAxDUYpM
ウェルカムトゥアンダーグラウンド並みに酷い
2018/12/08(土) 01:40:50.37ID:bqexRm9V0
暫く泳がせてたが
オブジェクトの依存関係はリフレクションとは直接関係ないけどな

メタデータ触るには不可欠だし
ライブラリ周り作るにも必要なケースは多い

自称上級者が継承やらリフレクションや使ってドヤって害悪なのは同意
2018/12/08(土) 14:58:00.11ID:AfMSmz/np
呼び出し方向を一方通行に制限するのは、循環呼び出しを避ける為だから。
849デフォルトの名無しさん (ワッチョイ 899e-ZtDu)
垢版 |
2018/12/08(土) 15:59:48.92ID:f0K+9NgH0
ぜんぜん違う

このスレにいるような池沼が作らなければ
クラスライブラリも階層(ココで階層は継承の階層ではない)や種類で作るからな

低い階層に行けばいくほど単純な簡単な機能を提供するクラスになる
階層は完全に分離させて独立したライブラリにする

そして明確に種類の異なるプリミティブがある場合は
ライブラリを完全に分離させて独立したライブラリにする

その上にアプリケーションを実現するクラス群がのっかる

低学歴知恵遅れが作るとすべて同じ階層で同じ種類になる
850デフォルトの名無しさん (ワッチョイ 899e-ZtDu)
垢版 |
2018/12/08(土) 16:01:14.77ID:f0K+9NgH0
当然、低レベルな部分を実現するクラスライブラリと
アプリケーションが主に利用する中間層のクラスライブラリと
アプリケーション自体を記述するクラス群は
シロウトでもないかぎり完全に分離するからな

低レベルな部分を実現するクラスライブラリは
当然、中間層のクラスライブラリやアプリケーション自体を記述するクラス群を
参照することはまずない

アプリケーションが主に利用する中間層のクラスライブラリは
アプリケーション自体を記述するクラス群を参照することはまずない

低学歴知恵遅れが作ると酷い依存関係ができる
コレはオブジェクト指向関係なくライブラリの基本だからな
851デフォルトの名無しさん (ワッチョイ 899e-ZtDu)
垢版 |
2018/12/08(土) 16:04:06.83ID:f0K+9NgH0
組織でたとえるならこうなるからな

 経営者クラス 社員をこき使う
  ↓
 社員クラス ← 派遣をこき使う(職階ごとの複数の中間層)
  ↓
 派遣クラス ← キミラが担当するような低レベルな部分の単純作業(つまりキミラ)

派遣は社員の作業も役員の作業もしない
社員は役員の作業はしない

関数の行数が多いのは
作業を整理して作業を手順化して
派遣にうまく単純作業を割り当てれてないのと同じだからな
つまり、人に仕事させないと自分の作業が増える

キミラは派遣ドカタだからな、そういう作業はできないのは分かる

当然作業ミス(例外)が発生してスルーし続けてたら上までいく
2018/12/08(土) 16:05:41.25ID:BPUiFCQU0
3行にまとめられない奴の発言は読む価値がないって本当だわ
853デフォルトの名無しさん (ワッチョイ 899e-ZtDu)
垢版 |
2018/12/08(土) 16:05:53.18ID:f0K+9NgH0
例えば扱うビジネスの領域が違えば
部門を分けることになる

会社に複数の部門があっても一つの会社だからな
種類で分けるというのはそういうことになる

キミラみたいな一種類の単純作業しかしてないヤツラには関係ないワケ
854デフォルトの名無しさん (ワッチョイ 899e-ZtDu)
垢版 |
2018/12/08(土) 16:06:15.85ID:f0K+9NgH0
というわけでな
キミラは刺身にタンポポのせる作業に戻りなさい
キミラにはムリ
855デフォルトの名無しさん (ワッチョイ 899e-ZtDu)
垢版 |
2018/12/08(土) 16:10:10.36ID:f0K+9NgH0
いちいちタンポポ載せてる作業経過報告はいらない
作業の補助とか、いちいち次になにをするかとかとか指示はしないからな

タンポポが地面に落ちたとかこのタンポポのハナ小さいとか
そういう報告(リフレクション)もいらない
捨てときなさい
それぐらい分かるだろう

タンポポが足りなくなりそうになったら
この台帳に書いときなさい
コレだけはたまに見といてやるからな

キミラのコーディングは自身がおかれてる立場と
まったく一致してるワケ
2018/12/08(土) 16:25:26.23ID:pq+LKchRM
プロジェクト適切に分けて
依存関係の正規化しろって話だろうに

リフレクションは関係ないしな
その程度の理解やから長い寝言いってる
857デフォルトの名無しさん (ワッチョイ 899e-ZtDu)
垢版 |
2018/12/08(土) 16:26:20.22ID:f0K+9NgH0
所詮、派遣ドカタ
残念なことに派遣ドカタのレスなんか
すぐにわかるわ
858デフォルトの名無しさん (ワッチョイ 899e-ZtDu)
垢版 |
2018/12/08(土) 16:28:18.82ID:f0K+9NgH0
バカに限って抽象化とかいって
サルみたいにうれしがって継承するからな

破綻はそこから始まる

しばらくほっとくと
データ受け渡しするために
無秩序に相互参照しはじめる

こうなったら終わりの始まり
2018/12/08(土) 16:41:33.73ID:MYwA5eIj0
質問です
ifの条件に配列を使いたいとき、例えば
if( 配列[ ]=={1,2,3,4} )
みたいにやるにはどうするのが一番簡単ですかね
配列[0]==1&&……で一個ずつ作るしかないですか
2018/12/08(土) 16:42:23.72ID:BPUiFCQU0
http://hissi.org/read.php/tech/20181208/
貫禄あるわ
2018/12/08(土) 16:59:12.00ID:w7bOiw+rd
>>859
https://docs.microsoft.com/en-us/dotnet/api/system.linq.enumerable.sequenceequal?view=netframework-4.7.2
2018/12/08(土) 17:04:10.21ID:fWle4nJW0
左辺も右辺も同じ長さの配列であればfor文を使うと書く量を減らすことができる気はする
2018/12/08(土) 18:13:48.89ID:CGiGObuC0
半角さんはこっちでも馬鹿を晒してるんだ。。
次世代言語スレで論破されてもまだみっともなくないんだね。
2018/12/08(土) 18:29:25.68ID:x4cazcr0d
俺はできるだけなんでもリフレクションでやるようにしてるよ
2018/12/08(土) 18:42:24.05ID:bRz/x0PH0
半角カナの人はあっちこっちで喧嘩売っている話の通じない人だから相手にしないでくれ
あとここ質問スレだから質問以外の話は相談室なり他で頼むよ
2018/12/08(土) 18:56:28.19ID:xIFIrW3s0
if( 配列.Where( a => (new int[] { 1,2,3,4 }).IndexOf( a ) > 0 ).FirstOrDefault() != null )
とかボソッと言ってみる。真に受けないでね。
867デフォルトの名無しさん (ワッチョイ 2b80-ZtDu)
垢版 |
2018/12/08(土) 21:20:12.98ID:tBodI9MC0
オレはケンカなんか売ってない
バカが真人間になるように矯正してるだけだからな

バカはオレにケンカ売ってるつもりらしいな
2018/12/08(土) 21:48:06.02ID:3kcswmur0
>>859
「一番簡単」が何を求めているのかわからないが、比較するものの数が決まっているのなら「配列[0]==1&&……で一個ずつ作る」のが「速くなる」
汎用にしたいのならラムダもlinqも俺自身が使えないのでメソッドにすると例えば
private bool hikaku(int[] arr1, int[] arr2)
{
if (arr1.Length != arr2.Length) return false;//配列の長さのCheck
int i = 0;
for (; i < arr1.Length; i++) if (arr1[i] != arr2[i]) break;
return i == arr1.Length;//全部一致したら最後まで止まらない
}
メソッドを呼び出すのはそれだけで速度的にだいたいロスになるので「速い」動作を求めるのならこれも勧めない
linq使うのが一般的だと思うけどそれは他の人に聞いてw
2018/12/08(土) 22:16:08.56ID:D0J+wHRo0
>>868
>>861やろ
2018/12/08(土) 22:32:50.81ID:uQ6Iu0Wba
まあ、>>861で済んでるとは思うんだけど、あえて付け加えるならこう?
public static bool Equals<T>(this T[] x, params T[] y) where T:IEquatable<T>
{
  return x.SequenceEqual(y);
}

今は(というか10年前からだけど)new[]{...}が使えるからparamsは有難みが薄いかもしれない
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況