0

インデクサーが欲しいのですが、セッターとゲッターの型が違うはずです。

public Foo this[string key]
{
    get
    {
        return FindFoo(key);
    }
}
public Bar this[string key]
{
    set
    {
        DoMagic(key, value);
    }
}

私がしようとすると:

myClass["hello"] = coolBar;

それは言う:呼び出しがあいまいです

とにかくこれを行うことはありますか?

4

1 に答える 1

6

インデクサーが欲しいのですが、セッターとゲッターの型が違うはずです。

基本的に、これはできません。2 つのインデクサーが同じ署名を持っている場合はそうではありません。

できたとしても、API のユーザーを驚かせるかなり奇妙な設計になると思います。

C# 仕様の関連部分はセクション 10.9 です。

インデクサーのシグネチャは、同じクラスで宣言されている他のすべてのインデクサーのシグネチャとは異なる必要があります。

于 2013-09-13T11:10:11.363 に答える