草庐IT

char32-t

全部标签

c# - 将 sbyte[] 转换为 bool[] 并将 char[] 转换为 short[]

有没有显式转换/强制转换sbyte[]或byte[]到bool[]char[]到short[]/ushort[]在CIL中,您经常会看到诸如stelemTypesbyte(ldlocpArray)ldc_i41ldc_i40正在执行pArray[1]=true,其中pArray是bool[]类型的一维数组。我想通过做在c#中复制它(sbyte[])pArray[1]=1;不幸的是,C#编译器不允许这样做。 最佳答案 未记录的技巧,风险自负:(例如here以及许多其他地方)[StructLayout(LayoutKind.Explic

c# - Char.IsDigit() vs Char.IsNumber(),有什么区别?

Char.IsDigit()和Char.IsNumber()有什么区别 最佳答案 //1/2symbolChar.IsNumber('½');//trueChar.IsDigit('½');//false//UnicodecharacterforRomannumeral5(V)Char.IsNumber('\x2165');//trueChar.IsDigit('\x2165');//false 关于c#-Char.IsDigit()vsChar.IsNumber(),有什么区别?,我们

c# - 将更多项目添加到非常大的 HashSet<Int32> 时出现 OutOfMemoryException

异常System.OutOfMemoryException在尝试添加23997908th时被抛出HashSet中的项目.我们需要维护一个高性能的唯一整数集合sizeofInt32.MaxValue即2147483647.HashSet的Int32只能存储23997907其中的项目。寻找解决此问题的建议。 最佳答案 HashSet(OfT)对象的容量是该对象可以容纳的元素数量。对象的容量会随着元素的添加而自动增加。ifyouareusing64bitsystem,youcanincreaseHashset'smaxcapacityup

c# - 从 WPF 窗口获取 System.Windows.Forms.IWin32Window

我正在编写一个WPF应用程序,我想使用thislibrary.我可以通过使用为窗口获取一个IntPtrnewWindowInteropHelper(this).Handle但这不会转换为System.Windows.Forms.IWin32Window,我需要显示此WinForms对话框。如何将IntPtr转换为System.Windows.Forms.IWin32Window? 最佳答案 选项1IWin32Window只需要一个Handle属性,这并不难实现,因为您已经有了IntPtr。Createawrapper实现IWin32

c# - 如何在 C# Express 中选择 32 位或 64 位构建?

当我尝试在C#Express2008中构建我的解决方案时遇到问题。我需要为32位架构构建它,但它总是为64位构建。在VisualStudio2008中,我可以选择体系结构,但在C#Express中找不到此选项。有没有办法在C#Express中做到这一点? 最佳答案 在完整的VisualStudio中查看项目文件中的差异,并手动对C#Express项目进行相同的编辑-VS将尊重这些更改,即使它不允许您进行它们来自IDE。编辑:正如Jeff在评论中指出的那样,如果您转到“工具”->“选项”,请勾选左下角的“显示所有设置”框。然后在“项目

C# - 将十进制转换为 int32

我有以下代码:inta=Convert.ToInt32(4.5m);intb=Convert.ToInt32(5.5m);Console.WriteLine(a);Console.WriteLine(b);这是输出:46为什么Convert.ToInt32将十进制值舍入到最接近的偶数? 最佳答案 Convert使用四舍五入或银行四舍五入:ThebehaviorofthismethodfollowsIEEEStandard754,section4.Thiskindofroundingissometimescalledroundingt

c# - 哪个是快速比较 : Convert. ToInt32(stringValue)==intValue 或 stringValue==intValue.ToString()

在开发我的应用程序时,我遇到了一些比较的东西:stringstr="12345";intj=12345;if(str==j.ToString()){//domylogic}我在想上面的东西也可以用:stringstr="12345";intj=12345;if(Convert.ToInt32(str)==j){//domylogic}所以我开发了一个示例代码来测试哪个性能更好variterationCount=1000000;varwatch=newStopwatch();watch.Start();stringstr="12345";intj=12345;for(vari=0;i第二

c# - 为什么我需要检查是否大于 Int32.MaxValue?

我在c#类库项目(.net4)上使用VisualStudio2010SP1Ultimate,我对某些事情感到好奇...给定这个方法:publicvoidDoSomethingBrilliant(intinput){if(input==int.MaxValue)thrownewArgumentOutOfRangeException("input");input++;Console.WriteLine(input);}我从代码分析中得到这个警告:CA2233:Microsoft.Usage:Correctthepotentialoverflowintheoperation'input+1'

c# - KeyEventArgs.Key 到 char

有没有办法将WPF的KeyEventArgs.Key转换为Char?我尝试使用KeyInterop:varx=(Char)KeyInterop.VirtualKeyFromKey(e.Key);对于数字和字母,它工作正常,但对于其他字符则不然。例如。对于OemComma,它返回“1/4”而不是“,”。我需要它来防止用户在TextBox中输入除数字和分隔符(即逗号或句点)以外的任何字符。 最佳答案 更新:下面的评论找到了原文http://stackoverflow.com/a/5826175/187650在我忘记的地方找到了这个。仍在

c# - 使用 C#/Win32 将文本写入记事本

我正在弄乱Win32API和Windows消息传递,试图弄清楚它们是如何工作的,我发现了这个questionveryhelpful.我想改进那里提供的解决方案,以便它附加文本,而不是仅仅通过WM_SETTEXT替换记事本中的文本。我的问题是,我将如何使用WM_GETTEXTLENGHT,然后使用WM_GETTEXT来获取记事本窗口中的当前文本,以便我可以在使用WM_SETTEXT之前向其追加新文本?在32位和64位机器上使用WM_XXXTEXT是否都有效?如果记事本中有很多文本,建议的获取/设置算法是否仍然有效,或者它会占用大量资源吗?如果是这样,是否有另一种方法可以将文本附加到记事本