各位兄弟,我遇到一个VB的函数,必须转换成c#的,看了好久都不知道如何下手,你们帮帮我吧,解决即给分
原函数如下:function mistake(preString)
      Dim texts
      Dim seed
      Dim i,length
      prestring = trim(preString)
      length = len(preString)
      seed = length
      Randomize(length)
      texts = ""
      for i = 1 to length
            seed = int(94*rnd(-asc(mid(preString,i,1))-seed*asc(right(prestring,1)))+32)
            texts = texts & chr(seed) & chr(int(94*rnd(-seed)+32))
      next
dim dist
dist=""
for i = 1 to len(texts)
  if mid(texts,i,1)<>"'"  then
      dist=dist+mid(texts,i,1)
       end if
    next 
    mistake = dist
end function

解决方案 »

  1.   

    object mistake(object preString) 

     object texts; 
     object seed; 
     object i; 
     object length; 
     prestring = trim(preString); 
     length = len(preString); 
     seed = length; 
     Randomize(length); 
     texts = ""; 
     for (int i = 1; i <= length; i++) { 
       seed = int(94 * rnd(-asc(mid(preString, i, 1)) - seed * asc(right(prestring, 1))) + 32); 
       texts = texts + chr(seed) + chr(int(94 * rnd(-seed) + 32)); 
     } 
     object dist; 
     dist = ""; 
     for (int i = 1; i <= len(texts); i++) { 
       if (mid(texts, i, 1) != "'") { 
         dist = dist + mid(texts, i, 1); 
       } 
     } 
     mistake = dist; 
    }
      

  2.   

    你去下一个Reflector,可以在IL,C#,VB,C++.Net之间互转
      

  3.   

    http://www.developerfusion.co.uk/utilities/convertvbtocsharp.aspx
      

  4.   

    string  mistake(object preString)
            {
                string texts;
                int seed;
                int i;
                int length;
                prestring = trim(preString);
                length = len(preString);
                seed = length;
                Randomize(length);
                texts = "";
                for (int i = 1; i <= length; i++)
                {
                    seed = (int)(94 * rnd(-asc(mid(preString, i, 1)) - seed * asc(right(prestring, 1))) + 32);
                    texts = texts + chr(seed) + chr((int)(94 * rnd(-seed) + 32));
                }
                string dist;
                dist = "";
                for (int i = 1; i <= len(texts); i++)
                {
                    if (mid(texts, i, 1) != "'")
                    {
                        dist = dist + mid(texts, i, 1);
                    }
                }
                mistake = dist;
            }
      

  5.   

    Have a try!private string mistake( string preString )
    {
    preString = preString.Trim();
    if( preString == null ) return null;
    int nLength = preString.Length;
    int nSeed = nLength;
    string strTexts = "";
    Random rdSeed = new Random( nSeed );
    nSeed = rdSeed.Next();
    for( int i = 1; i < nLength; i++ )
    {
    Random ranTemp = new Random( -(int)( preString[i] ) - nSeed * preString[nLength - 1] );
    nSeed = 94 * ranTemp.Next() + 32; ranTemp = new Random( -nSeed );
    strTexts += ( (char)( nSeed ) ) + ( char)( 94 * ranTemp.Next() + 32 );
    } string strDist = strTexts.Replace( "'", "" );
    return strDist;
    }