无法访问通用列表项的属性

sve*_*sen 1 .net c#

您好,我在访问已将参数传递给函数的通用列表的属性时遇到错误.我的代码如下:

程序

static void Main(string[] args)
{
    var stregsystem = new Stregsystem();
}
Run Code Online (Sandbox Code Playgroud)

类用户

public int UserID = 10;
Run Code Online (Sandbox Code Playgroud)

类Stregsystem

List<User> users = new List<User>();

public Stregsystem() {
    users.Add(new User());
    users.Add(new User());
    users.Add(new User());

    CSV.Write<User>(users);
}
Run Code Online (Sandbox Code Playgroud)

类CSV

public static void Write<T>(List<T> list) {
    Console.WriteLine(list.Count());

    Console.WriteLine(list[0].UserID);
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

错误1'T'不包含'UserID'的定义,并且没有扩展>方法'UserID'接受类型'T'的第一个参数可以找到(你>缺少using指令或汇编引用吗?)> D :\ Development\OOP\CSV.cs 14 39 OOP

我假设错误位于Write函数中,但我不知道问题是什么.

Zer*_*er0 6

Write是一种通用方法.按原样编写,您可以使用任何类型调用它T.你肯定不能假设任何类型的财产UserId.改为:

public static void Write(List<User> list) 
{
    Console.WriteLine(list.Count);
    Console.WriteLine(list[0].UserID);
}
Run Code Online (Sandbox Code Playgroud)