gpt4 book ai didi

c# - 如何在静态函数中选择

转载 作者:太空宇宙 更新时间:2023-11-03 20:18:49 24 4
gpt4 key购买 nike

我有一个 Student 类,里面有一个属性 Studentnameaddress

我还有一个如下所示的静态函数,用于按address(living area)

过滤学生
public static List<T> FilterByAddress<T>(List<T> StudentList, string address )
{
Type typeParameterType = typeof(T); // it is returning Student
StudentList = StudentList.FindAll(x => x.address == address );
return StudentList;
}

我在这部分代码“x.address”上收到一个错误,错误 42“T”不包含“Studentname”的定义并且没有扩展方法“Studentname”接受类型为“T”的第一个参数可以找到(您是否缺少 using 指令或程序集引用?)

如何通过让 T 识别为学生类(class)来解决这个问题?

最佳答案

更新 根据您的评论:

The T can be different not necessary must be student , it be other class than have a property Address

Generic 不会以这种方式工作。如果你想使用一个方法访问多个类的公共(public) Address 属性,你需要让它们都实现一个接口(interface),比如 IHasAddress(糟糕的名字),然后定义一个方法的一般约束,例如 where T : IHasAddress

原始答案

如果你需要它成为一个Student,你不应该使方法通用:

public static List<Student> FilterByAddress(List<Student> StudentList, string address )
{
StudentList = StudentList.FindAll(x => x.address == address );
return StudentList;
}

关于c# - 如何在静态函数中选择<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14950190/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com