インターフェイスのプロパティについて学んでいて、MSDN と書籍の例に基づいて機能すると思われるものに遭遇しましたが、そうではありません。インターフェイス プロパティを明示的に実装すると、クラス インスタンスがアクセスしようとしたときに認識されませんが、暗黙的に実行すると正常に動作します (それが正しい用語かどうかはわかりません)。
interface IMyInterface
{
string Name { get; set; }
}
class MyClass : IMyInterface
{
private string name;
string IMyInterface.Name //works if not explicit: i.e., public string Name
{
get { return this.name; }
set { this.name = value; }
}
}
class Program
{
static void Main(string[] args)
{
MyClass myClass = new MyClass();
myClass.Name = "blah"; // fails
}
}