【发布时间】:2016-05-20 10:11:13
【问题描述】:
当我们为索引器显式实现接口时,我们如何能够在创建对象后从索引器中设置和获取值。或者在同一个类构造函数中
namespace oopsTesting.Indexer
{
public interface IndexerInterface
{
char this[int index] { get; set;}
}
class Indexer : IndexerInterface
{
string name = "Babu Kumarasamy";
StringBuilder sbName = new StringBuilder("Babu Kumarasamy");
public Indexer()
{
for (int i = 0; i < sbName.Length; i++)
{
//How to access the indexer here
Console.WriteLine("Property Indexer: {0}, StringBuilder: {1}", this[i], sbName[i]);
}
}
char IndexerInterface.this[int index]
{
get { return name[index]; }
set
{
//Property or indexer 'string.this[int]' cannot be assigned to -- it is read only
//Strings are immutable which is why there's no setter, you can however use a string builder:
//name[index] = value;
sbName[index] = value;
}
}
}
class Program
{
static void Main(string[] args)
{
GenericIndexerTest objGenIndexer = new GenericIndexerTest();
//How to access the indexer here
}
}
}
【问题讨论】:
-
“显式接口实现”的第一个 Google 结果是Explicit Interface Implementation Tutorial,它回答了您的问题。
-
将此转换为接口 Console.WriteLine("Property Indexer: {0}, StringBuilder: {1}", ((IndexerInterface)this)[i], sbName[i]);跨度>
标签: c#