私はC#が初めてで、次の問題があります:
Collection から継承する TypeCollection を作成する必要があります。ここにあるオブジェクトのタイプは、私が作成したいくつかのタイプです。
InsertItem() オーバーロードされたメソッドで、オブジェクトが作成した特定の型階層からのものであるかどうかを確認したい、そうでない場合は例外をスローします。
コード スニペットが添付されています。
public class ObjectTypeCollection<Type> : Collection<Type>
{
protected override void InsertItem(int index, Type item)
{
if(!(Utility.IsFDTObject(item.GetType())))
{
throw new ArgumentException(string.Format("Type {0} is not valid", item.ToString()));
}
base.InsertItem(index, item);
}
}
ここでの問題は、アイテム インスタンスにあります。現在渡されているタイプを取得できるメソッドはありません。GetType() は、渡した型を返しません。現在、私は使用しています:
System.Type typ = System.Type.GetType(item.ToString());
タイプを取得してから、これを Utility メソッドに渡します。これはうまくいきます。これは正しいアプローチですか?
ここで私を助けてくれませんか?