草庐IT

char16-t

全部标签

c# - 我应该使用 int 还是 UInt16?

这可能有点微不足道,但在C#中,当在变量中存储网络端口时,您更喜欢int还是UInt16?框架类在处理网络端口时使用int,尽管UInt16实际上表示有效值。 最佳答案 signed(int/short等,而不是uint/ushort)具有作为CLS的优势合规,因此除非您有充分的理由,否则建议这样做。Reint与short-在大多数情况下,使用int(或uint),因为所有运算符都为此进行了优化。如果您只是存储和检索它,那么这当然不是问题。 关于c#-我应该使用int还是UInt16?,

c# - 为什么用于 Unicode 属性测试的 C# System.Char 方法有两个重载?

在methodsofSystem.Char,我们看到两种检查字符是否为符号的方法:publicstaticboolIsSymbol(strings,intindex)publicstaticboolIsSymbol(charc)同样适用于其他属性测试:IsLower、IsLetter等为什么会出现这种重复?有什么理由比Char.IsSymbol(s[idx])更喜欢Char.IsSymbol(s,idx)吗? 最佳答案 从表面上看,这两个重载在功能上似乎是相同的,但是深入到对InternalGetUnicodeCategory的调用

c# - 从 char 到单字符串的隐式转换

首先:我知道如何解决这个问题。我不是在寻找解决方案。我对导致一些隐式转换而没有导致其他隐式转换的设计选择背后的推理很感兴趣。今天我在我们的代码库中遇到了一个小但有影响的错误,其中int常量被初始化为char表示相同的数字。这会导致ASCIIchar的转换到int.像这样的东西:chara='a';intz=a;Console.WriteLine(z);//Result:97我很困惑为什么C#会允许这样的事情。在四处搜索后,我发现了以下SO问题,并由EricLippert本人回答:ImplicitTypecastinC#摘录:However,wecanmakeeducatedguesse

C# 对 ushort (UInt16) 进行位移

我需要对16位整数(ushort/UInt16)执行按位左移,但C#中的按位运算符似乎仅适用于int(32位)。我如何在ushort上使用 最佳答案 移位后将结果值转换回ushort:ushortvalue=1;ushortshifted=(ushort)(value 关于C#对ushort(UInt16)进行位移,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3819593/

c# - C DLL 中的 PInvoke char* 在 C# 中处理为字符串。空字符问题

CDLL中的函数如下所示:intmy_Funct(char*input,char*output);我必须从C#应用程序调用它。我通过以下方式执行此操作:...DllImportstuff...publicstaticexternintmy_Funct(stringinput,stringoutput);输入字符串完美地传输到DLL(我有可见的证据)。该函数填写的输出虽然是错误的。我有hexa数据,比如:3F-D9-00-01但不幸的是,两个零之后的所有内容都被截断了,只有前两个字节进入了我的C#应用程序。它发生了,因为(我猜)它被视为空字符并将其作为字符串的结尾。知道如何摆脱它吗?我试

c# - 将 System.Windows.Input.KeyEventArgs 键转换为 char

我需要将事件参数作为char获取,但是当我尝试转换Key枚举时,我得到的字母和符号与传入的完全不同。如何正确地将Key转换为字符?这是我试过的ObserveKeyStroke(this,newObervableKeyStrokeEvent((char)((KeyEventArgs)e.StagingItem.Input).Key));编辑:我在args上也没有KeyCode属性。我从InputManager.Current.PreNotifyInput事件中获取它们。 最佳答案 参见Howtoconvertacharacterint

c# - C# List<char[]> 是否分配在连续内存中?

如果我声明一个char数组列表,它们是分配在连续的内存中,还是.NET创建一个链接列表?如果它不是连续的,有没有办法声明一个连续的char数组列表?char数组的大小是预先知道的并且是固定的(它们的大小都相同)。 最佳答案 是的,但不是您想要的方式。List保证它的元素是连续存储的。数组是引用类型,因此引用连续存储为List保证。但是,数组本身是单独分配的,它们的存储位置与列表无关。它只关心它的元素,即引用。如果您需要,那么您应该只使用一个大数组并维护边界数据。编辑:根据您的评论:Theinnerarraysarealways9ch

c# - 在 C# 中用 16 位字交换字节序的更快方法

必须有一种更快更好的方法来交换16位字的字节然后这个。:publicstaticvoidSwap(byte[]data){for(inti=0;i有没有人有想法? 最佳答案 在我尝试申请Uberhacker奖时,我提交了以下内容。对于我的测试,我使用了一个8,192字节的Source数组并调用了SwapX2100,000次:publicstaticunsafevoidSwapX2(Byte[]source){fixed(Byte*pSource=&source[0]){Byte*bp=pSource;Byte*bp_stop=bp+

C# 十六进制转char

我有一个长度为4的十六进制字符串,比如“003a”。将其转换为char的最佳方法是什么?先转bytes再转char? 最佳答案 试试这个:(char)Int16.Parse("003a",NumberStyles.AllowHexSpecifier);或System.Convert.ToChar(System.Convert.ToUInt32("003a",16));或stringstr="";for(inti=0;i 关于C#十六进制转char,我们在StackOverflow上找到一

c# - 为什么 Int16 变量减去 Int16 参数的结果是 Int32?

这个问题在这里已经有了答案:关闭13年前。PossibleDuplicate:byte+byte=int…why?我有这样的方法:voidMethod(shortparameter){shortlocalVariable=0;varresult=localVariable-parameter;}为什么结果是Int32而不是Int16?