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