C#, C♯, C#相談室 Part91
at TECH
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
400:デフォルトの名無しさん 16/08/28 00:45:09.67 s1SxoEZK.net >>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は拡張メソッドとして呼び出せないはずだけど、直感的には呼べた方が自然だと思わない? それとか、拡張メソッドを含むクラスを別の名前空間のクラスが継承したらどうする? 401:デフォルトの名無しさん 16/08/28 00:59:15.28 hQF+q+Zk.net >>382 拡張メソッドはコンパイラで解決しなきゃいけない しかし、外部のDLLがShapeの子クラスを実装して、それを動的に読み込む可能性があるのでコンパイラでは解決不能 >オブジェクト指向がその意味でのシンタックスシュガーでしかないよ そういうことを言ってるんじゃない オブジェクト指向は共通言語仕様に書かれているのでILにその情報が残り、すべての言語が対応する それに対しシンタックスシュガーはコンパイラの機能でILに完全には残らなかったり、属性をつけることで対応しているコンパイラのみが利用する
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
2403日前に更新/279 KB
担当:undef