私は2つのクラスを持っています:
- フィールド ID を持つクラス T1。
- T1 クラス T2 から継承されたクラス T2 には、一意のフィールド SomeProperty があります。
また、タイプ オブジェクト (T1 と T2) の両方を含む一意のプロパティと配列があります。このプロパティでIDを取得する必要がありますが、どのように正しく認識されるのかわかりません。
public class T_One
{
protected int id;
public T_One(int foo)
{
id = foo;
}
public int ID
{
get { return id; }
}
}
public class T_Two : T_One
{
protected int someProperty;
public T_Two(int id, int foo) : base(id)
{
someProperty = foo;
}
public int Property
{
get { return someProperty; }
}
}
//I have some solution, but I think it's BAD idea with try-catch.
public int GetObjectIDByProperty(Array Objects, int property)
{
for(int i = 0; i < Objects.Length; i++)
{
try
{
if (((T_Two)(Objects.GetValue(i))).Property == property)
{
return ((T_Two)Objects.GetValue(i)).ID;
}
}
catch
{
//cause object T_one don't cast to object T_Two
}
}
return -1; //Object with this property didn't exist
}