簡體   English   中英

從其泛型參數類型的實例創建 class 的實例

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM