我想你有兩個選擇,第一個選擇最好的方法,只有當你知道該列表將是某種類型時纔會工作。
public class Result<T>
{
private List<T> _vaguelist = new List<T>();
public List<T> vaguelist {
get
{
return _vaguelist;
}
set
{
_vaguelist = value;
}
}
}
Result a = new Result<string>();
a.vaguelist.Add("1234");
Result b = new Result<int>();
a.vaguelist.Add(1234);
,如果你wan't添加多種類型的進榜啊,你不會知道你把什麼進入榜單
public class Result
{
private List<object> _vaguelist;
public List<object> vaguelist {
get
{
return _vaguelist;
}
set
{
_vaguelist = value;
}
}
}
Result a = new Result();
a.vaguelist.Add("1234");
a.vaguelist.Add(1234);
有問題的第二個方案將工作這種方法是,你將不得不投入列表中的每一個項目,以利用項目的類型。
利用第一種方法,你可以實現這樣的:
public class Result<T>
{
private List<T> _vaguelist = new List<T>();
public List<T> vaguelist {
get
{
return _vaguelist;
}
set
{
_vaguelist = value;
}
}
}
public abstract class Result
{
public static Result<T> NewResultFromItem<T>(T item)
{
Result<T> result = new Result<T>();
result.vaguelist.Add(item);
return result;
}
}
string item1 = "123";
string item2 = "234";
var result = Result.NewResultFromItem(item1);
result.vaguelist.Add(item2);
這聽起來像你需要去和[閱讀泛型](https://msdn.microsoft.com/en-gb/library/512aeb7t.aspx)。 –
爲什麼不讓'Result'通用? –
你是否想用不同類型的列表同時填充列表,即使用異構類型? – TaW