私は、プロパティとそのインターフェイスを実装するクラスとのインターフェイスを持っています。クラスのインスタンスをインターフェイスにキャストし、プロパティを読み取ろうとしましたが、値を取得しません。なぜ誰かが見ることができますか?プロパティのプロパティがインターフェイスに失敗する原因は何ですか?
インタフェース:
public interface IFoo
{
int ObjectId { get; }
}
クラス:
public class Bar : IFoo
{
public int ObjectId { get; set; }
}
使用法:
...
Bar myBar = new Bar() { ObjectId = 5 };
IFoo myFoo = myBar as IFoo;
int myId = myFoo.ObjectId; //Value of myFoo.ObjectId is 5 in Watch, but myId remains at 0 after statement
...
これは単純化されていますが、基本的に私がやっています。ウォッチウィンドウでmyFoo.ObjectIdの値を見ることができますが、myIdへの割り当てが失敗します(値は割り当ての前後で0です)。
あなたのコードと間違って何もないです - 唯一の説明は、あなたが上でそれを検査しているのどちらかということです最後の行のブレークポイント(実際に実行される前)、または間違った変数を検査しています。最後に 'Console.WriteLine(myId)'を置くと、値が実際に設定されているのがわかります。 – Rob