在VB.NET 2008中,我使用了以下语句:
MyKeyChr = ChrW(e.KeyCode)
现在我想将上面的语句转换成C#。
有任何想法吗?
快速而肮脏的相当于ChrW
在 C# 中只是将值转换为char
:
char MyKeyChr = (char)e.KeyCode;
更长、更具表现力的版本是使用转换类之一,例如System.Text.ASCIIEncoding http://msdn.microsoft.com/en-us/library/system.text.asciiencoding.aspx.
或者您甚至可以通过导入以下内容在 C# 中使用实际的 VB.NET 函数Microsoft.VisualBasic
命名空间。仅当您依赖于由ChrW
幕后方法,您可能无论如何都不应该依赖这些方法。该代码看起来像这样:
char MyKeyChr = Microsoft.VisualBasic.Strings.ChrW(e.KeyCode);
但是,在这种情况下,这并不能保证产生您想要的结果(原始代码也不是)。并非所有值都在Keys
枚举都是ASCII值,所以并不是所有的都可以直接转换为字符。特别是铸造Keys.NumPad1
等等人。到char
不会产生正确的值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)