C#,如何在泛型方法中访问对象方法

C#,如何在泛型方法中访问对象方法,c#,object,generics,generic-list,C#,Object,Generics,Generic List,我有两个数据类,它们的方法是isSenior() 公共类职员:成员、可比、可胜任 { 公共字符串占用{get;set;} 公共覆盖布尔isSenior() { var today=DateTime.today; var age=今天。年-生日。年; 如果(年龄>65岁) { 返回true; } 返回false; } } 及 公共类玩家:成员,可比,可比 { 公共双倍高度{get;set;} 公共字符串位置{get;set;} 公共字符串俱乐部{get;set;} 公共bool{get;set;

我有两个数据类,它们的方法是isSenior()

公共类职员:成员、可比、可胜任
{
公共字符串占用{get;set;}
公共覆盖布尔isSenior()
{
var today=DateTime.today;
var age=今天。年-生日。年;
如果(年龄>65岁)
{
返回true;
}
返回false;
}
}

公共类玩家:成员,可比,可比
{
公共双倍高度{get;set;}
公共字符串位置{get;set;}
公共字符串俱乐部{get;set;}
公共bool{get;set;}
公共厕所队长{get;set;}
公共覆盖布尔isSenior()
{
var today=DateTime.today;
var age=今天。年-生日。年;
如果(年龄>30岁)
{
返回true;
}
返回false;
}
}
例如,我想在另一个返回所有高级人员列表的通用方法中使用此方法

List<Player> allSeniorPlayers = TaskUtils.findSeniorMembers<Player>(allPlayers)
List allSeniorPlayer=TaskUtils.findSeniorMembers(所有玩家)
是否可以像这样调用isSenior()方法:

    public List<T> findSeniorMembers<T>(List<T> allMembers)
    {
        List<T> seniorMembers = new List<T>();
        foreach (T member in allMembers)
        {
            if(member.isSenior())
            {
                seniorMembers.Add(member);
            }
        }
        return seniorMembers;
    }
public List findseniormbers(列出所有成员)
{
List seniorMembers=新列表();
foreach(所有成员中的T成员)
{
if(member.isSenior())
{
高级成员。添加(成员);
}
}
返回资深会员;
}

错误发生在成员.isSenior()上。有什么方法可以实现这一点吗?

如果
成员中定义了
isSenior
,则只需将
T
限制为
成员
或其子类型:

public List<T> findSeniorMembers<T>(List<T> allMembers) where T : Member
public List查找seniormber(列出所有成员),其中T:Member
文件:


您没有显示在哪里声明了
isSenior
,但是假设它在
成员中,我怀疑您只需要约束
t
公共列表findSeniorMembers(列出所有成员),其中t:Member
。更多说明:1)该方法体可以是
allMembers.Where(member=>member.IsSenior()).ToList()2)现在是按照.NET命名约定修改名称的好时机-方法应以大写字母开头;3) 
IsSenior
听起来它通常是一个属性,而不是一个方法。
    public List<T> findSeniorMembers<T>(List<T> allMembers)
    {
        List<T> seniorMembers = new List<T>();
        foreach (T member in allMembers)
        {
            if(member.isSenior())
            {
                seniorMembers.Add(member);
            }
        }
        return seniorMembers;
    }
public List<T> findSeniorMembers<T>(List<T> allMembers) where T : Member