C# で、タイプは異なるが名前が似ている 2 つのプロパティを宣言できますか? このようなもの:
public class Types
{
public string Element
{
get { return ""; }
}
public int Element
{
get { return 0; }
}
}
C# で、タイプは異なるが名前が似ている 2 つのプロパティを宣言できますか? このようなもの:
public class Types
{
public string Element
{
get { return ""; }
}
public int Element
{
get { return 0; }
}
}
似た名前?はい。同じ名前?いいえ。
同じクラスで宣言された同じ名前の 2 つのメンバーを持つことができるのは、コンストラクターとメソッドの場合のみです。これらは、オーバーロードごとに異なるシグネチャを持つ必要があります。
C# 4 仕様のセクション 10.3 から:
定数、フィールド、プロパティ、イベント、または型の名前は、同じクラスで宣言されている他のすべてのメンバーの名前とは異なる必要があります。
これが許されると、非常に紛らわしく、明らかにあいまいなコードになります。
Types types = new Types();
object x = types.Element; // What would this do?
作成したコードを実行してエラーを取得する必要がありますが、以下のようなものが必要な場合があります
public class Types<T>
{
public T Element
{
get { return default(T); }
}
}