我无法弄清楚下面会出现什么样的静态错误:
public bool OptionsMatch(Item item, ItemFavorite itemFavorite)
{
bool isSame = true;
switch (item.DispType)
{
case DispType.Dropdown:
case DispType.Radio:
isSame = String.Contains(item.Value);
break;
case DispType.ImageList:
isSame = ListValuesMatch(item, itemFavorite);
break;
}
return isSame;
}
错误:无法在静态上下文中访问非静态方法“包含”
DispType是一个枚举。其余的都是非静态的具体类型实例,并且底层类也不是包含此方法的静态。
答案 0 :(得分:6)
string.Contains
不是静态的,它是一个实例方法;即它在字符串的实例上调用,如下所示:
"something".Contains(item.Value);
这是因为Contains
需要两个对象 - 引用字符串和要搜索的字符串。你只提供了一个(要搜索的字符串)但不提供在哪里查看。
答案 1 :(得分:2)
以下是发生的问题:
isSame = String.Contains(item.Value);
Contains是一个实例方法:
isSame = "foo".Contains(item.Value);
或者反过来取决于你想要做什么:
isSame = item.Value.Contains("foo");
答案 2 :(得分:0)
String.Contains
不是有效的静态方法。你想要评估什么?
答案 3 :(得分:0)
Contains
上的方法System.String
是一种实例方法。您正尝试使用System.String
类型进行访问,这是一个错误。你需要一个字符串实例。