从类的泛型参数类型的实例创建类的实例
本文关键字:实例 类型 创建 泛型 参数 | 更新日期: 2023-09-27 17:57:49
我想这样做:
public class ValueContainer<T> {
public T Value { get; set; }
}
然后我想给它分配一个值,如下所示:
private ValueContainer<string> value;
value = "hello";
我确信我在某个地方见过这个,但不知道怎么做。
TIA
您可以使用自定义隐式运算符,例如:
public static implicit operator ValueContainer<T>(T value) {
return new ValueContainer { Value = value };
}
虽然这是C#的一个很好的语言功能,但它不符合CLS,也不受VB.NET等其他.NET语言的支持,所以如果你正在设计可与其他语言重用的类型,那么值得记住这一点。
创建自己的隐式运算符可以解决这个问题。
class Program
{
static void Main(string[] args)
{
Container<string> container;
container = "hello";
}
}
public class Container<T>
{
public T Value { get; set; }
public static implicit operator Container<T>(T val)
{
return new Container<T> { Value = val };
}
}