我在vs2005中使用c#编程,我希望同时使用vb中的函数,于是我添加了对Microsoft.VisualBasic的引用,写了以下代码:
  if( Microsoft.VisualBasic.Strings.InStr( nr,"<img")!=0 ),
可是总是出错,提示:InStr 方法没有采用2个参数的重载。
我很纳闷:在asp中,明明可以写成instr(nr,"<img"),为什么在c#中
就会出错呢??? 奇怪的是,我使用Microsoft.VisualBasic.Strings.LCase( Request["user"]。ToString() ) 就没有错误!为什么?

解决方案 »

  1.   

    写少了一个参数if( Microsoft.VisualBasic.Strings.InStr(nr," <img")!=0,CompareMethod.Text)
      

  2.   

    写少了一个参数C# code    if( Microsoft.VisualBasic.Strings.InStr(nr," <img")!=0,CompareMethod.Text)你的这句代码有错误啊。即使是因为缺少了参数,我还是不明白,有的参数应该是可选的啊!为什么在asp中就可以写2个参数??
      

  3.   

    人家没写错,是你写错了。仔细看)的位置。另外,
    asp是VB的子集。asp不等于VB。不要拿asp的习惯去套VB。
      

  4.   

    我的原句是:
    if( Microsoft.VisualBasic.Strings.InStr( nr," <img")!=0 )
    而silentwins的语句是:
    if( Microsoft.VisualBasic.Strings.InStr(nr," <img")!=0,CompareMethod.Text) 
    这两句怎么会一样??后一句什么意思?
      

  5.   


    后面一个参数在C#里是必须的,指定比较的方式,是文本比较,还是二进制比较。如果你不理解,你可以在VS中,将光标移至InStr位置,按F1.
      

  6.   

    xie_yanke,请你再看看这句:
    if( Microsoft.VisualBasic.Strings.InStr(nr,"  <img")!=0,CompareMethod.Text) 
    这条语句的意思是:if( 表达式1,表达式2 ),CompareMethod.Text就是表达式2,这是什么逻辑?
      

  7.   

    if(Microsoft.VisualBasic.Strings.InStr(nr, "  <img", CompareMethod.Text)!=0)