您好,我在访问已将参数传递给函数的通用列表的属性时遇到错误。我的代码如下:
程序
static void Main(string[] args)
{
var stregsystem = new Stregsystem();
}
类用户
public int UserID = 10;
类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);
}
CSV类
public static void Write<T>(List<T> list) {
Console.WriteLine(list.Count());
Console.WriteLine(list[0].UserID);
}
我收到以下错误:
错误1'T'不包含'UserID'的定义,并且找不到扩展名>方法'UserID'接受类型'T'的第一个参数(是否>缺少using指令或程序集引用?)> D :\ Development \ OOP \ CSV.cs 14 39 OOP
我假设错误在于Write函数,但我不知道问题出在哪里。
最佳答案
Write
是通用方法。按原样编写,您可以使用任何T
类型调用它。并且您当然不能假定任何类型都具有属性UserId
。改为这样做:
public static void Write(List<User> list)
{
Console.WriteLine(list.Count);
Console.WriteLine(list[0].UserID);
}