wdcp 默认网站,看颜色应该搜索哪些词汇,包装设计公司排行,农业公司怎样建立网站可以在接口上声明索引器。 接口索引器的访问器与类索引器的访问器有所不同#xff0c;差异如下#xff1a;
接口访问器不使用修饰符。接口访问器通常没有正文。
访问器的用途是指示索引器为读写、只读还是只写。 可以为接口中定义的索引器提供实现#xff0c;但这种情况非…可以在接口上声明索引器。 接口索引器的访问器与类索引器的访问器有所不同差异如下
接口访问器不使用修饰符。接口访问器通常没有正文。
访问器的用途是指示索引器为读写、只读还是只写。 可以为接口中定义的索引器提供实现但这种情况非常少。 索引器通常定义 API 来访问数据字段而数据字段无法在接口中定义。
下面是接口索引器访问器的示例
public interface ISomeInterface
{//...// Indexer declaration:string this[int index]{get;set;}
}
索引器的签名必须不同于同一接口中声明的所有其他索引器的签名。
示例
下面的示例演示如何实现接口索引器。
// Indexer on an interface:
public interface IIndexInterface
{// Indexer declaration:int this[int index]{get;set;}
}// Implementing the interface.
class IndexerClass : IIndexInterface
{private int[] arr new int[100];public int this[int index] // indexer declaration{// The arr object will throw IndexOutOfRange exception.get arr[index];set arr[index] value;}
}
IndexerClass test new IndexerClass();
System.Random rand System.Random.Shared;
// Call the indexer to initialize its elements.
for (int i 0; i 10; i)
{test[i] rand.Next();
}
for (int i 0; i 10; i)
{System.Console.WriteLine($Element #{i} {test[i]});
}/* Sample output:Element #0 360877544Element #1 327058047Element #2 1913480832Element #3 1519039937Element #4 601472233Element #5 323352310Element #6 1422639981Element #7 1797892494Element #8 875761049Element #9 393083859
*/
在前面的示例中可通过使用接口成员的完全限定名来使用显示接口成员实现。 例如
string IIndexInterface.this[int index]
{
}
但仅当类采用相同的索引签名实现多个接口时才需用到完全限定名称以避免歧义。 例如如果 Employee 类正在实现接口 ICitizen 和接口 IEmployee而这两个接口具有相同的索引签名则需要用到显式接口成员实现。 即是说以下索引器声明
string IEmployee.this[int index]
{
} 在 IEmployee 接口中实现索引器而以下声明
string ICitizen.this[int index]
{
}
在 ICitizen 接口中实现索引器。