C# 静态上下文错误

C# 静态上下文错误,c#,C#,我无法找出导致以下错误的静态原因: public bool OptionsMatch(Item item, ItemFavorite itemFavorite) { bool isSame = true; switch (item.DispType) { case DispType.Dropdown: case DispType.Radio: isSame = String.Contains(item.Value)

我无法找出导致以下错误的静态原因:

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;
}
错误:无法访问静态上下文中的非静态方法“Contains”

DispType是一个枚举。其余的都是非静态的具体类型实例,并且包含此方法的基础类也不是静态的。

string.contains不是静态的,它是一个实例方法;i、 e.在字符串实例上调用,如下所示:

"something".Contains(item.Value);

这是因为Contains需要两个对象—引用字符串和要搜索的字符串。您只提供了一个要搜索的字符串,但没有提供查找位置。

出现以下问题:

isSame = String.Contains(item.Value);
是一个实例方法:

isSame = "foo".Contains(item.Value);
或者另一种方式取决于您试图做什么:

isSame = item.Value.Contains("foo");

String.Contains不是有效的静态方法。您试图评估什么?

该方法包含在系统上。String是一个实例方法。您正在尝试使用System.String类型进行访问,这是一个错误。您将需要字符串的实例

我不知道我有多少次这样对自己。这太明显了。