私はいくつかの助言/助けが必要ですが、私はもう木から木材を見ることはできません。C#キャスティングジェネリック(共分散と反動?)
ジェネリックを使用していくつかのインターフェイスを実装する、まっすぐ進む一連のクラスです。
それから私は、例えば、コンクリートの型をキャストしようとしている:
MyGenericObject<SomeObject> _obj;
IMyGenericObject<ISomeObject> _genObj = (IMyGenericObject<ISomeObject>)_obj;
//無効な私は、なぜこのwouldn」共変性と反変性についてのいくつかの記事を読んで、あまりにも明確ではありませんしました
をキャスト可能なのか、それをどうやって得るのか?
ので、この例では:あなたが活動プロパティを取得して設定することができない、ので
public interface IMyObject<in T> where T : IBaseObject
{
T Activity { get; set; }
}
は.... ...
を動作しないでしょう。この例では
、私が行うために必要な:誰か、そして助けをすべてに感謝を助け
public interface IMyObject<out T> where T : IBaseObject
{
T Activity { get; }
}
希望!
あなたのインターフェースの定義を表示してください。 –