C# c:在扩展方法中访问对象属性

C# c:在扩展方法中访问对象属性,c#,extension-methods,C#,Extension Methods,我目前正在写一个c Rummikub游戏 我有一个名为Card的对象,它具有值和颜色属性。 另外,在玩家的类中,我有一张玩家手牌的列表 在Player类中,我编写了一些只获取玩家手作为参数的方法。比如: 当我尝试编写扩展方法时,我无法访问卡的属性: 错误: “卡”不包含“值”的定义,也不包含扩展名 接受类型为“Card”的第一个参数的方法“Value”可以是 发现是否缺少using指令或程序集引用 我应该如何编写扩展方法才能访问对象属性?您的扩展方法是泛型的,带有一个参数类型的Card,它隐藏着

我目前正在写一个c Rummikub游戏

我有一个名为Card的对象,它具有值和颜色属性。 另外,在玩家的类中,我有一张玩家手牌的列表

在Player类中,我编写了一些只获取玩家手作为参数的方法。比如:

当我尝试编写扩展方法时,我无法访问卡的属性:

错误:

“卡”不包含“值”的定义,也不包含扩展名 接受类型为“Card”的第一个参数的方法“Value”可以是 发现是否缺少using指令或程序集引用


我应该如何编写扩展方法才能访问对象属性?

您的扩展方法是泛型的,带有一个参数类型的Card,它隐藏着具体的Card类。删除通用参数:

public static int foo(this List<Card> list)
{
    return list[0].Value;
}

您的扩展方法是泛型的,参数类型为Card,它隐藏了具体的Card类。删除通用参数:

public static int foo(this List<Card> list)
{
    return list[0].Value;
}

卡片类别没有值的定义。您可以显示您的卡片类别吗?它显然没有名为Value的公共成员。Card类没有Value的定义。您可以显示您的Card类吗?它显然没有名为Value的公共成员。
public static class HandExtensionMethods
{
    public static int foo<Card>(this List<Card> list)
    {
        return list[0].Value;
    }

}
public static int foo(this List<Card> list)
{
    return list[0].Value;
}