属性(Attribute)の指定に使われている[]

該当部分(冒頭)

説明:
これらの[]は「産性」(Attribute)を定義しているもので、配列とはまったく関係ありません。

・Comlmport:このインターフェイスがCOM (Component Object Model)オブジェクトであることを示す。
・Guid(…・・):インターフエイスのGUID(グローバルー意識別子)を指定する。
・InterfaceType(…):COMインターフェイスの種類を指定する(ここではIUnknown型)。
・ComVisible(true):COMからこの型が見えるかどうかを指定する。
これらはコンパイラにメタデータを伝える目的で使われます

メソッドの引数[In] ref Guid iid

説明:
この[In]もまた属性です。引数が「入力専用」であることを明示する属性で、NETのP/nvoke(Platform Invocation Services)やCOMとの相互運用に使われます。
・[In]は明示しなくてもrefなら既定で「in としてもout としても」扱われますが、安全性や明確さのために書くことがあります。

まとめ:配列ではない[]の意味

使い方意味関連例
[ComImport]などの[]属性(Attribute)クラス・インターフェイス・メソッド・引数のメタ情報
[In]引数の入出力方向を示す属性GetInterface([In] ref Guid iid)

ワンポイント補足

C#における[]の使い方をさっくり分頼すると:

用途意味
配列の定義int[] nums = new int[5];配列の型・アクセス
属性[Obsolete]. [D11Import(…)]コンパイル時のメタ情報を提供
インデクサーアクセスlist[®], dict[“key”]コレクションや配列の要素アクセス
属性付き引数[In], [Out]P/Invoke などで使われる引数修飾子

コメント

タイトルとURLをコピーしました