++C++; // 未確認飛行 C ブログ

http://ufcpp.net/

__makerefとか__arglistとか

leave a comment »

知る人ぞ知る機能の説明、今更追加。

http://ufcpp.net/study/csharp/sp_makeref.html

一応、C# 1.0の頃からあるけども、仕様外・ドキュメント一切なし(C#の仕様書にも書かれてないし、当然、標準化資料にも書かれてない。MSDN等の言語リファレンスにも説明なし)の隠し機能。かろうじて、「それ、仕様外の機能だよ」warningメッセージの解説ページ内に __arglist の文字が出てくる程度です。

みんな、どこでこんな隠し機能のこと調べてくるんだろう?(こんなどこにも説明のない機能なのに、なぜかStackOverflowとかには詳細に調べてる人がいる)

仕様外の機能だし、今まで書くかどうか迷ってて結局書いてなかったものの、思えば、COM特別扱い(COM限定のref省略とか引数付きプロパティとか)と比べたら大差ないなと思って記事化してしまうことにしました。

ちなみに、Roslyn

もちろん、コードネーム“Roslyn”、正式名称「.NET Compiler Platform」、要するにC#の新コンパイラーでも __makeref とかちゃんと使えます(互換性崩してないので当たり前だけども)。

Roslynがオープンソースになった時、「見たこともない謎のキーワードがあるんだけど何これ?」なんていう人もいたり。

↓見ての通り、探せば確かにキーワード一覧の中に __makeref とかもまぎれてます。

image

まあ、なぜ今更こんな記事書くことにしたかというと、この話題を見て __arglist の存在を思いだしたりしたからだったり。

Written by ufcpp

2014年9月26日 @ 02:50

カテゴリー: 未分類

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。