我想要一个Indexer,但是setter和getter的类型应该是不同的。
public Foo this[string key]
{
get
{
return FindFoo(key);
}
}
public Bar this[string key]
{
set
{
DoMagic(key, value);
}
}
当我尝试:
myClass["hello"] = coolBar;
它说:电话不明确
有没有这样做?
答案 0 :(得分:6)
我想要一个Indexer,但是setter和getter的类型应该是不同的。
基本上你不能这样做 - 不是当两个索引器具有相同的签名时。
即使你可以,我也会说这将是一个非常奇怪的设计,这会让你的API用户感到惊讶。
C#规范的相关位是第10.9节:
索引器的签名必须与同一类中声明的所有其他索引器的签名不同。