簡體   English   中英

如何在 c# 中實例化泛型類型的linkedlistNode

[英]How to instantiate a linkedlistNode of a generic type in c#

例如我有一個通用的 class KeyAndValue

public class KeyAndValue<T, U>
{
    public T? key { get; set; }
    public U? value { get; set; }
}

現在我想實例化一個LinkedListNode<KeyAndValue<int, int>> object

var newNode = new LinkedListNode<KeyAndValue<int, int>>();

我收到這樣的警告

There is no argument given that corresponds to the required formal parameter 'value' of 'LinkedListNode<KeyAndValue<int, int>>.LinkedListNode(KeyAndValue<int, int>)' [146]",

我的問題是如何創建一個泛型類型的泛型類型的 object?

您可以使用現有的 class KeyValuePair代替KeyAndValue 另外你可以創建一個構造函數:

public class KeyAndValue<T, U>
    {
        public KeyAndValue(T key, U value)
        {
            this.key = key;
            this.value = value;
        }
        public T? key { get; set; }
        public U? value { get; set; }
    }

兩者都是可能的:

var keyValuePair = new KeyValuePair<int, int>(0, 5);
var linkedListNode1 = new LinkedListNode<KeyValuePair<int, int>>(keyValuePair);

var keyAndValue = new KeyAndValue<int, int>(0, 5);
var linkedListNode2 = new LinkedListNode<KeyAndValue<int, int>>(keyAndValue);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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