C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[7]: 属性の利用法 [1]


(過去ログ 34 を表示中)

[トピック内 27 記事 (21 - 27 表示)]  << 0 | 1 >>

■16785 / inTopicNo.21)  Re[2]: 属性の利用法
  
□投稿者/ 鶏唐揚 (31回)-(2008/04/10(Thu) 15:51:00)
>スパイ属性、セクハラ属性、InternalsVisibleTo属性が揃うと、取引先に不定期に
>「私の恥ずかしいところ、見てください」
>というタイトルのメールで、ソースコードの一番かっこ悪いところを送りつける。
腹筋ブレイカーシャノン氏の誕生である
引用返信 編集キー/
■16786 / inTopicNo.22)  Re[3]: 属性の利用法
□投稿者/ れい (471回)-(2008/04/10(Thu) 15:53:43)
.Netの属性だけで言語とか作ったら面白いんじゃなかろうか。
引用返信 編集キー/
■16788 / inTopicNo.23)  Re[4]: 属性の利用法
□投稿者/ ネタ好き (74回)-(2008/04/10(Thu) 16:12:56)
No16786 (れい さん) に返信
> .Netの属性だけで言語とか作ったら面白いんじゃなかろうか。

それいいアイデアです。
アスペクト指向パラダイム言語ですね。
引用返信 編集キー/
■16791 / inTopicNo.24)  Re[5]: 属性の利用法
□投稿者/ れい (472回)-(2008/04/10(Thu) 16:28:36)
No16788 (ネタ好き さん) に返信
> アスペクト指向パラダイム言語ですね。

ネタ指向言語かと思います。
引用返信 編集キー/
■16793 / inTopicNo.25)  Re[6]: 属性の利用法
□投稿者/ ネタ好き (75回)-(2008/04/10(Thu) 16:34:29)
No16791 (れい さん) に返信
> ■No16788 (ネタ好き さん) に返信
>>アスペクト指向パラダイム言語ですね。
>
> ネタ指向言語かと思います。

そうですね(笑)
引用返信 編集キー/
■16796 / inTopicNo.26)  Re[1]: 属性の利用法
□投稿者/ シャノン (387回)-(2008/04/10(Thu) 16:40:27)
No16202 (ネタ好き さん) に返信

属性は、一般的に、リフレクションによって使われます。
が、一部の属性はリフレクション以外でも使われます。
代表的なのが Obsoletes とか InternalsVisibleTo とか。コンパイラやリンカによって解釈される属性ですね。
で、これらの属性の利用者がコンパイラやリンカであると限定するならば、必ずしも ObsoletesAttribute クラスとして .NET Framework に含まれる必要は無いわけです。
#pragma obsoletes みたいな形で、コンパイラにだけ解釈できるものであっても困らない。
もちろん、利用者をコンパイラに限定する必要は必ずしも無いわけですが。限定した場合という仮定のもとでの話です。

さて、ちょっと視点を変えてみます。
ソースコードと、それをコンパイルしたバイナリの違いは何でしょう?
まぁいろいろ挙げることはできると思いますが、ここでは「表現方法の違い」ということにしてみましょう。
要するに、書いてある内容は同じであって、その書き方が違うだけ、ということです。

何が言いたいかというと…書いてある内容が同じであれば、バイナリに対してだけでなく、ソースコードに対してもリフレクションができていいんじゃないか? ということです。
現実には、ソースコードパーサを書かないと不可能なわけですが。
コンパイルされたバイナリも、IL という中間言語で書かれたコードだと思えば、コンパイラがソースコードをパースすることと、.NET Framework ランタイム ライブラリが IL をパースすること(リフレクション)は同じことだと考えられます。

仮に ObsoletesAttribute でなく #pragma obsoletes のような形にしてしまって、コンパイル後のバイナリには属性情報が残らないとすれば、ソースコードとバイナリの内容が同じではなくなってしまいます。
コンパイルしていなくてもプログラムがプログラムであることに変わりは無く、コンパイラが ObsoletesAttribute を拾い上げて警告をだすことは、ソースコードに対してリフレクションをしているのだ、と考えると、何か面白いアイデアが出てくるかな? と。

ただそれだけの話です。
引用返信 編集キー/
■16800 / inTopicNo.27)  Re[7]: 属性の利用法
□投稿者/ ネタ好き (76回)-(2008/04/10(Thu) 17:07:04)
シャノンさんに返信
有難うございます。
直には思いつきませんが、その視点で見れば、かなりすごい事が出来そうです。
引用返信 編集キー/

<前の20件
トピック内ページ移動 / << 0 | 1 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -