C# 如何将泛型字段传递给可观察集合
我有如下代码C# 如何将泛型字段传递给可观察集合,c#,generics,C#,Generics,我有如下代码 public class Field<T> { private T_fieldValue; public T FieldValue { get { return _fieldValue; } set { _fieldValue = value; } } } public class
public class Field<T>
{
private T_fieldValue;
public T FieldValue
{
get
{
return _fieldValue;
}
set
{
_fieldValue = value;
}
}
}
public class Container
{
private ObservableCollection<Field> _fieldValues;
public ObservableCollection<Field> FieldValues
{
get { return _fieldValues; }
set { _fieldValues = value; }
}
}
如何在容器类中传递我的类型参数
i、 我在找像这样的东西
private ObservableCollection<Field<T>> _fieldValues;
编辑:
我对班级做了如下修改
public class Container<T>
{
public string MyName { get; set; }
private ObservableCollection<Field<T>> _fieldValues;
public ObservableCollection<Field<T>> FieldValues
{
get { return _fieldValues; }
set { _fieldValues = value;}
}
}
}
现在在我的主课上,我怎么能称之为
new ObservableCollection<Container>() { MyName ="Kyle",
new Container() { FieldValues = new ObservableCollection<Field<int>>()
{new Field<int>(){FieldValue=10}}; // I am not sure if this syntax is correct
您还需要将容器类设置为泛型:
class Container<T> : BindableBase
{
private ObservableCollection<Field<T>> _fieldValues;
}
要创建泛型容器类的实例,可以使用与任何泛型类型完全相同的语法。例如,如果T是int,您将使用:
new Container<int>()
提取非通用接口?公共类容器:BindableBase还有问题吗,或者Peter现在已经回答了吗?如果是,请将其标记为已回答。但如果我的容器类具有其他非泛型值呢??例如:假设我的容器类包含一个“字符串”,那么我如何在我的mainclass中调用它???@kyle您可以有多个泛型参数,它只是类容器:BindableBase,您可以将其创建为新的Container@ScottChamberlain你能看看我更新的问题吗?@kyle:我不明白你的问题。您的代码示例不显示任何字符串或其他类型。正如Scott所说,如果您希望容器是泛型的,您总是可以添加一个参数。但我甚至不确定你问的是什么。请编辑您的代码示例,以便它清楚地显示您的意思。@PeterDuniho对此表示抱歉。。您已经更新了问题
new Container<int>()
FieldValues = new ObservableCollection<Field<int>>()