您好,我在访问已将参数传递给函数的通用列表的属性时遇到错误.我的代码如下:
程序
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函数中,但我不知道问题是什么.
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)