-7

C# で、タイプは異なるが名前が似ている 2 つのプロパティを宣言できますか? このようなもの:

public class Types
{
    public string Element
        {
            get { return ""; }
        }
    public int Element
        {
            get { return 0; }
        }
}
4

2 に答える 2

5

た名前?はい。同じ名前?いいえ。

同じクラスで宣言された同じ名前の 2 つのメンバーを持つことができるのは、コンストラクターとメソッドの場合のみです。これらは、オーバーロードごとに異なるシグネチャを持つ必要があります。

C# 4 仕様のセクション 10.3 から:

定数、フィールド、プロパティ、イベント、または型の名前は、同じクラスで宣言されている他のすべてのメンバーの名前とは異なる必要があります。

これ許されると、非常に紛らわしく、明らかにあいまいなコードになります。

Types types = new Types();
object x = types.Element; // What would this do?
于 2013-03-19T10:57:42.420 に答える
2

作成したコードを実行してエラーを取得する必要がありますが、以下のようなものが必要な場合があります

  public class Types<T>
    {
        public T Element
        {
            get { return default(T); }
        }

    }
于 2013-03-19T10:59:51.453 に答える