进出口寻找一种方式来替换以下安全:更换非类型与类型安全的泛型方法
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'字段中有相同的信息(并且在检索时不需要强制转换)。 –