private含まれているクラスのジェネリックを使用して、メソッド内でフィールドを定義する方法はありますか?
(質問の長さをお詫びします。私が求めていることを正確に特定するのに苦労しています)
具体的には、現在、次の要件を持つ3 つのクラスA、があります。BC
BとC呼ばれるフィールドがありますnameが、AありませんACメソッドはありますLoad()が、Bありません- のコレクション
BとカスタムメソッドでC使用されますが、このメソッドは使用されませんnameAdd()A
これは私の現在の解決策です:
public class BaseClass
{
public SomeType Load() { ... }
}
public interface IClass {
string Name {get; set;}
}
public class MyList : SomeCollection<IClass>
{
// Depends on x.Name, and may modify Name before adding x to the collection
public new void Add(IClass x) { ... }
}
public class A : BaseClass { ... }
public class B : IClass { ... }
public class C : BaseClass, IClass { ... }
Namepublic がある場合、このソリューションは私にとってはうまくいきsetます。しかし、を変更できるx.Nameように適切にカプセル化する方法はありますが、とのインスタンスでは変更できませんか?Addx.Namex.NameBC