C#.NET のインデクサのデフォルトの名前は Item である。
機会は少ないが、下記のように Item を別のメンバの名前にする場合、そのままではコンパイルが通らない。
そこで、IndexerNameAttribute で、インデクサの名前を変更することができる。
機会は少ないが、下記のように Item を別のメンバの名前にする場合、そのままではコンパイルが通らない。
public class IndexerName
{
// コンパイルエラーになる
public string this[int index] { get { return index.ToString(); } }
public string Item;
}
そこで、IndexerNameAttribute で、インデクサの名前を変更することができる。
using System.Runtime.CompilerServices;
public class IndexerName
{
// インデクサの名前が"Indexer"になり、コンパイルエラーにならない。
// ※変数名の禁則文字は使えない。(エラーになる)
// ※VB からなら instance(0) の他に、instance.Indexer(0) でもアクセス可能
[IndexerName("Indexer")]
public string this[int index] { get { return index.ToString(); } }
public string Item;
}
0 件のコメント:
コメントを投稿