- C#, C♯, C#相談室 Part91 [無断転載禁止]©2ch.net
375 :デフォルトの名無しさん[sage]:2016/08/28(日) 00:08:50.44 ID:s1SxoEZK - >>374
あんたにも分かるように説明してあげよう 拡張メソッドとは、HogeClass.func(x) を x.func() と書けるシンタックスシュガーである そ れ だ け
| - C#, C♯, C#相談室 Part91 [無断転載禁止]©2ch.net
385 :デフォルトの名無しさん[sage]:2016/08/28(日) 00:45:09.67 ID:s1SxoEZK - >>378
スコープが広がってルールが複雑になるから 例えばこういうときどうする? /* ファイル1.cs */ namespace NS1 { class Hoge { public static void EX(this Hoge h) { … } } /* ファイル2.cs */ namespace NS2 { class Test { public static void Main() { new NS1.Hoge().EX(); } } } これ、現在の仕様から類推すればファイル2内ではNS1をusingしてないから EXは拡張メソッドとして呼び出せないはずだけど、直感的には呼べた方が自然だと思わない? それとか、拡張メソッドを含むクラスを別の名前空間のクラスが継承したらどうする?
|
|