簡體   English   中英

使用泛型C#

[英]Using Generics C#

我是C#的新手,正想了解一下泛型。 我嘗試這個簡單的類:

using System;
using System.Collections.Generic;


    public class Program<T>
    {
        public static void Main()
        {

            List<T> list = new List<T>();

        }
    }

但是當我運行代碼時,出現錯誤:

無法對ContainsGenericParameters為true的類型或方法執行后期綁定操作。

我想念什么?

正如人們已經在注釋中提到的那樣,您的代碼無法編譯,但是您的問題是關於泛型(列表)的基礎知識,我將盡力回答。

List<T>

意味着您需要傳遞一個類型參數來“說明”列表將包含的項目類型。 所以你可以輸入

List<string>

創建一個字符串列表。 當然,您可以使用自己的類,例如

List<MyClass>

創建MyClass對象的列表。

您不能使包含入口點( Main()方法)的類通用(通過將<T>附加到Program類來完成)。 但這不是必須的。 如果要使用List<T>類的泛型類,您要做的就是指定要用於其具體實現的類型。

using System;
using System.Collections.Generic;

public class Program
{
    public static void Main()
    {
        List<int> list = new List<int>(); // List<T>'s generic parameter T was set to int

        list.Add(5); // 5 is of type int
    }
}

這很好。 您還可以構建自己的泛型類,其泛型參數又可以用作其他泛型類型的參數:

class MyGenericClass<A>
{
    public void Example()
    {
        List<A> list = new List<A>(); // List<T>'s generic parameter T was set to whatever A is

        list.Add(default(A)); // default(A) is some default value of type A
    }
}

暫無
暫無

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

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