C# Can';公共接口的t访问属性

C# Can';公共接口的t访问属性,c#,interface,properties,C#,Interface,Properties,我定义了一个简单的接口: public interface Categorizable { string Category { get; set; } } 在其他地方,我尝试在函数中使用它: public void Add(Categorizable item) { string cat = item.Category; } 然而,VisualStudio告诉我“Categorizable不包含Category的定义”。 如何修复此问题,以便将类别用作可访问属性 接口前面应

我定义了一个简单的接口:

public interface Categorizable {

    string Category { get; set; }
}
在其他地方,我尝试在函数中使用它:

public void Add(Categorizable item)
{
    string cat = item.Category;
}
然而,VisualStudio告诉我“Categorizable不包含Category的定义”。 如何修复此问题,以便将类别用作可访问属性

  • 接口前面应该有一个
    I
    ICategorizable
    ,它非常常见,也是C#的标准
  • 检查您没有声明具有相同名称的类
  • 检查您是否在其他地方声明了接口。
    • 如果这是来自类库,请检查您是否实际使用了正确的版本,以及项目中的版本

  • 除此之外,没有什么其他问题会出问题。这就是接口的工作方式(没有偏差)。

    应该是这样的。事实上,如果我把这两位代码放在IDE中,它就会编译。因此,我怀疑您没有向我们显示某些内容。右键单击类型名称并转到定义,查看它是否引用了相同的类型。啊,找到问题了。问题是,我声明了一个实现列表相关接口的类,该接口通过可重用对象进行迭代,并将其声明为ListDictionary,而我本应将其声明为ListDictionary。问题解决了!