[英]Create an instance of a class from an instance of the type of its generic parameter
我想做這個:
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,並且不會被其他 .NET 語言(如 VB.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 };
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.