Par*_*amu 14 c# vb.net keycode char vb.net-to-c#
在VB.NET 2008中,我使用了以下语句:
MyKeyChr = ChrW(e.KeyCode)
Run Code Online (Sandbox Code Playgroud)
现在我想将上面的语句转换为C#.
有任何想法吗?
Cod*_*ray 20
ChrWC#中快速和脏的等价物只是将值转换为char:
char MyKeyChr = (char)e.KeyCode;
Run Code Online (Sandbox Code Playgroud)
更长,更具表现力的版本是使用其中一个转换类,比如System.Text.ASCIIEncoding.
或者您甚至可以通过导入Microsoft.VisualBasic命名空间在C#中使用实际的VB.NET函数.只有当你依赖于ChrW引擎盖下方法执行的一些特殊检查时,这才是必要的,无论如何你可能不应该指望这些检查.该代码看起来像这样:
char MyKeyChr = Microsoft.VisualBasic.Strings.ChrW(e.KeyCode);
Run Code Online (Sandbox Code Playgroud)
但是,在这种情况下,并不保证能够准确生成您想要的内容(原始代码也不是).并非Keys枚举中的所有值都是ASCII值,因此并非所有值都可以直接转换为字符.特别是铸造Keys.NumPad1等.人.以char不会产生正确的值.
看起来像C#等价物
var MyKeyChr = char.ConvertFromUtf32((int) e.KeyCode)
Run Code Online (Sandbox Code Playgroud)
但是,e.KeyCode不包含Unicode代码点,因此这种转换毫无意义.
| 归档时间: |
|
| 查看次数: |
18702 次 |
| 最近记录: |