[英]How to create a parameter class with variant value
我想創建一個params集合。 使用泛型創建集合非常簡單:
List<Param> Params = new List<Param>();
我可以簡單地添加如下參數:
List<Param> Params = new List<Param>() {
new Param() { Label = "Param 1", Type = Param.ParamType.Text },
new Param() { Label = "Param 2", Type = Param.ParamType.Select }
}
現在,如何為每個參數添加類型化的value屬性?
喜歡:
我認為有這樣一個更好的解決方案:
new Param() { Label = "Param 1", Type = Param.ParamType.Text, StringValue = "text" },
new Param() { Label = "Param 1", Type = Param.ParamType.Text, StringValue = "text" },
new Param() { Label = "Param 1", Type = Param.ParamType.CheckBox, BoolValue = true }
我建議制作一個通用子類:
public Param<T> : Param
{
public T Value { get; set; }
}
然后像這樣創建它們:
new Param<string>() { Label = "Param 1", Type = Param.ParamType.Text, Value = "text" },
new Param<string>() { Label = "Param 1", Type = Param.ParamType.Text, Value = "text" },
new Param<bool>() { Label = "Param 1", Type = Param.ParamType.CheckBox, Value = true }
您可以利用類型推斷在Param
上創建一個更方便的靜態方法:
public class Param
{
...
public static Param<T> From<T>(string label, ParamType type, T value)
{
return new Param<T>()
{
Label = label,
Type = type,
Value = value
}
}
}
然后像這樣使用它:
Param.From("Param 1", Param.ParamType.Text, "text"),
Param.From("Param 1", Param.ParamType.Text, "text"),
Param.From("Param 1", Param.ParamType.CheckBox, true)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.