進出口尋找一種方式來替換以下安全:更換非類型與類型安全的泛型方法
public class NonTypeSafe
{
private List<object> contents = new List<object>();
public List<object> Contents {get { return contents; }};
public NonTypeSafe(params object[] arguments)
{
foreach(object arg in arguments)
{
contents.Add(arg);
}
}
}
的東西,是類型安全的。目的是讓我可以添加許多不同類型的物體。目前,檢索對象時必須進行檢查,以確定它們是否是正確的類型/按照正確的順序。
目前我有以下幾點:
public class TypeSafe<T1>
{
protected List<object> ArgList = new List<object>();
private readonly T1 arg1;
public TypeSafe(T1 arg1)
{
ArgList.Add(arg1);
this.arg1 = arg1;
}
public T1 Arg1
{
get { return (T1) ArgList[ArgList.IndexOf(arg1)]; }
}
}
public class TypeSafe<T1, T2> : TypeSafe<T1>
{
private readonly T2 arg2;
public TypeSafe(T1 arg1, T2 arg2) : base(arg1)
{
ArgList.Add(arg2);
this.arg2 = arg2;
}
public T2 Arg2
{
get { return (T2) ArgList[ArgList.IndexOf(arg2)]; }
}
}
等等,增加了新的類最多人數最多的參數,我會合理預期。有沒有更好的方法來實現這一目標?
複雜的Ids,男人? :) –
'ArgList'似乎是多餘的,因爲'arg1'和'arg2'字段中有相同的信息(並且在檢索時不需要強制轉換)。 –