2010-09-14 41 views
0

我想不出什么可以是静态这里造成的错误如下所示:静态上下文错误

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是一个枚举。其余的都是非静态的具体类型实例,以及基础类不是静态的,也不包含这个方法。

回答

6

string.Contains不是静态的,它是一种实例方法;即它被称为上实例的字符串的,就像这样:

"something".Contains(item.Value); 

这是因为Contains需要两个对象 - 引用字符串,并搜索字符串。您只提供了一个(要搜索的字符串),但没有提供查找的地方。

+0

发布错误,应该是isSame – PositiveGuy 2010-09-14 20:24:02

+0

duh,omg。我需要睡眠 – PositiveGuy 2010-09-14 20:27:36

+0

我不知道有多少次我用这个包含自己做了这个。这是非常明显的。 – PositiveGuy 2010-09-14 21:08:08

2

这里发生了问题:

isSame = String.Contains(item.Value); 

Contains是一个实例方法:

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

或围绕这取决于你正在尝试做另一种方式:

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

String.Contains不是有效的静态方法。你想评估什么?

0

方法ContainsSystem.String是一个实例方法。您正试图使用​​System.String这种类型的错误进行访问。你需要一个字符串实例。

相关问题