- C#, C♯, C#相談室 Part86 [転載禁止]©2ch.net
684 :デフォルトの名無しさん[sage]:2015/02/18(水) 13:38:39.43 ID:pmjO4Zhz - デリゲートとは直接関係ない
外部変数のキャプチャとか表現される機能 匿名メソッド/ラムダ式で外部の変数が使用される場合、 その変数はメソッドのローカル変数じゃなくてコンパイラが生成するクラスのフィールドになる 簡略化すればこんな感じ class anonymous { public string value; } static void Main() { anonymous _user01 = new anonymous() { value = "" }; StringHandler handler = delegate { return _user01.value; }; _user01.value = "ABC"; handler(); }
|
- C#, C♯, C#相談室 Part86 [転載禁止]©2ch.net
687 :デフォルトの名無しさん[sage]:2015/02/18(水) 14:01:57.13 ID:pmjO4Zhz - 自分で型宣言してるじゃん
> List<StringHandler> userList = new List<StringHandler>(); userList[0]が返すのはStringHandler型であってstring型じゃない StringHandler型つまりデリゲート型は特別に()演算子で委譲されたメソッドを実行できる StringHandler handler = userList[0]; string result = hander();
|
- C#, C♯, C#相談室 Part86 [転載禁止]©2ch.net
690 :デフォルトの名無しさん[sage]:2015/02/18(水) 14:20:50.73 ID:pmjO4Zhz - >>688
そこのSelectメソッドをデリゲート無しで「普通にメソッド呼ぶ」ってどうやって? 条件毎にSelect1メソッド、Select2メソッド、って書いていく?
|
- ふらっと C#,C♯,C#(初心者用) Part114©2ch.net
687 :デフォルトの名無しさん[sage]:2015/02/18(水) 14:42:05.51 ID:pmjO4Zhz - #,###.####
|
- C#, C♯, C#相談室 Part86 [転載禁止]©2ch.net
692 :デフォルトの名無しさん[sage]:2015/02/18(水) 14:48:06.17 ID:pmjO4Zhz - もちろん変数を介在させなくても良いけどね
string result = userList[0]();
|
- ふらっと C#,C♯,C#(初心者用) Part114©2ch.net
696 :デフォルトの名無しさん[sage]:2015/02/18(水) 18:49:05.21 ID:pmjO4Zhz - >>694
同じNumberFormatInfo与えただけだと同じになったんだけど どういう時に相違点が出るん?
|
- ふらっと C#,C♯,C#(初心者用) Part114©2ch.net
699 :デフォルトの名無しさん[sage]:2015/02/18(水) 19:31:26.75 ID:pmjO4Zhz - >>698
> 日本以外で実行した場合とコンパネで書式変更した場合かな > 要はデータの具体的表現は国や好みなどの要因で様々なので目的ごとの抽象的な表現で指定しましょうって事かな カスタム数値書式指定文字列の , とか . はプレースホルダで、実際にはカルチャの各区切り文字列を使うよ 区切り桁数も
|
- ふらっと C#,C♯,C#(初心者用) Part114©2ch.net
705 :デフォルトの名無しさん[sage]:2015/02/18(水) 21:01:25.42 ID:pmjO4Zhz - 日付時刻の要素の位置はそうね
|