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

http://ufcpp.net/

Archive for 9月 2014

C# Design Note

leave a comment »

昨日ちょっと話してきたもの。

C# design note sep 2014 from 信之 岩永

 

Roslynがオープンソースになって、仕様が固まる前のディスカッションとかも見えるようになったよというのの紹介と、正式な文法をどうするか悩んでる新機能があってどういうところで悩んでいるか2例ほど挙げて説明。

Written by ufcpp

2014年9月30日 at 22:24

カテゴリー: C#

__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日 at 02:50

カテゴリー: 未分類