繁体   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