VB的Asc()和Chr()函数在C#中的等价物是什么?VB有几个本机函数,用于将char转换为ASCII值,反之亦然-Asc()和Chr()。现在我需要在C#中获得等效的功能。什么是最好的方法?您始终可以添加对Microsoft.VisualBasic的引用,然后使用完全相同的方法:Strings.Chr和Strings.Asc。这是获得完全相同功能的最简单方法。对于Asc(),您可以像这样将char转换为int:inti=(int)your_char;对于Chr(),您可以像这样从int转换回char:charc=(char)your_int;这是一个小程序,演示了整个过程:usingSystem;类程序{staticvoidMain(){charc='A';诠释我=65;//都打印“True”Console.WriteLine(i==(int)c);控制台.WriteLine(c==(char)i);对于Chr()你可以使用:charchr=(char)you_char_value;我使用resharper获得了这些,确切的代码由VB在您的机器上运行//////返回与指定字符代码关联的字符。////////////返回与指定字符代码关联的字符。//////必需的。表示字符的,或字符代码的整数表达式。<0or>255forChr.1publicstaticcharChr(intCharCode){if(CharCode(int)ushort.MaxValue)thrownewArgumentException(Utils.GetResourceString("Argument_RangeTwoBytes1",newstring[1]{"CharCode"}));如果(CharCode>=0&&CharCode(int)byte.MaxValue))throwExceptionUtils.VbMakeException(5);字符[]字符=新字符[2];byte[]bytes=newbyte[2];解码器decoder=encoding.GetDecoder();如果(字符代码>=0&&字符代码>8));bytes[1]=checked((byte)(CharCode&(int)byte.MaxValue));decoder.GetChars(bytes,0,2,chars,0);}返回字符[0];}catch(Exceptionex){抛出ex;}}//////返回一个Integer值,表示对应于字符的字符代码。////////////返回一个整数值,表示对应于字符的字符代码。//////必需的。任何有效的Char或String表达式。如果是字符串表达式,则仅使用字符串的第一个字符作为输入。如果为Nothing或不包含任何字符,则会发生错误。1publicstaticintAsc(charString){intnum1=Convert.ToInt32(String);if(num1///ReturnsanIntegervaluerepresentingthecharactercodecorrespondingtoacharacter.////////////返回一个整数值,代表对应的字符代码继续一个角色。//////必需的。任何有效的Char或String表达式。如果是字符串表达式,则仅使用字符串的第一个字符作为输入。如果是Nothing或不包含任何字符,则会发生错误。1publicstaticintAsc(stringString){if(String==null||String.Length==0)thrownewArgumentException(Utils.GetResourceString("Argument_LengthGTZero1",newstring[1]{"String"}));返回Strings.Asc(String[0]);}资源只是存储错误消息,所以这就是你想要忽略它们的方式,而你无权访问的其他两个方法如下:internalstaticEncodingGetFileIOEncoding(){returnEncoding.Default;}内部静态intGetLocaleCodePage(){返回Thread.CurrentThread.CurrentCulture.TextInfo.ANSICodePage;}对于非ASCII字符,Strings.Asc不等同于普通的C#转换,它可以超过127个代码值我在https://social.msdn.microsoft.com/Forums/vstudio/en-US/13fec271-9a97-4b71-ab28-4911ff3ecca0/equivalent-in-c-of-asc-chr-functions-of上找到答案-动词?forum=csharpgeneral等同于:staticintAsc(charc){intconverted=c;if(converted>=0x80){byte[]buffer=newbyte[2];//如果转换后的长度为1个字节,则仅使用该值if(System.Text.Encoding.Default.GetBytes(newchar[]{c},0,1,buffer,0)==1){converted=缓冲区[0];}else{//字节交换字节1和2;converted=buffer[0]或者,如果您希望读取事务,请添加对Microsoft.VisualBasic程序集的引用。//Char到Int-ASC("]")intlIntAsc=(int)Char.Parse("]");控制台.WriteLine(lIntAsc);//Return91//InttoCharcharlChrChar=(char)91;Console.WriteLine(lChrChar);//返回"]"给定charc和inti,以及函数fi(int)和fc(char):从char到int(类似于VBAsc()):显式地将char转换为int:inti=(int)C;或隐式转换(lift):fi(charc){i+=c;}从int到char(类似于VBChr()):显式转换Int转换为char:charc=(char)i,fc(inti){(char)i};不允许隐式转换,因为int比char宽(取值范围更大)以上是C#学习教程:VB的Asc()和Chr()函数在C#中的等价物是什么?如果分享的所有内容对您有用,需要了解更多C#学习教程,希望您多多关注---本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
