草庐IT

c# - 是否可以拆分进行 CRC-32 计算?

我使用这个简单的函数来计算给定文件的CRC校验和:longi,j=0;intk=0;uintcrc=0xFFFFFFFF;FileInfofile_info=newFileInfo(file);byte[]file_buffer=newbyte[32768];FileStreamfile_stream=newFileStream(@file,FileMode.Open);while((i=file_stream.Read(file_buffer,0,file_buffer.Count()))>0){for(j=0;j>8)&0x00FFFFFFL)^crc32_table[k];crc

c# - 为什么每个 Char static "Is..."都有一个字符串重载,例如IsWhiteSpace(字符串,Int32)?

http://msdn.microsoft.com/en-us/library/1x308yk8.aspx这允许我这样做:varstr="string";Char.IsWhiteSpace(str,6);而不是:Char.IsWhiteSpace(str[6]);似乎不寻常,所以我看了看倒影:[TargetedPatchingOptOut("PerformancecriticaltoinlineacrossNGenimageboundaries")]publicstaticboolIsWhiteSpace(charc){if(char.IsLatin1(c)){returnchar.I

c# - 为什么 BitVector 32 结构比 BitArray 更高效?

BitArray和BitVector32结构有什么区别,BitVector32结构相对于BitArray有什么优势?为什么BitVector32结构比BitArray更高效?提前致谢。周杰... 最佳答案 BitVector32ismoreefficientthanBitArrayforBooleanvaluesandsmallintegersthatareusedinternally.ABitArraycangrowindefinitelyasneeded,butithasthememoryandperformanceoverhe

c# - 如何使用 Shell32.SHGetFileInfo 在 Windows 7 上获取文件夹图标

我有以下适用于WindowsXP和Vista的代码-32位和64位:publicstaticIconGetFolderIcon(IconSizesize,FolderTypefolderType){//Needtoaddsizecheck,althougherrorsgeneratedatpresent!uintflags=Shell32.SHGFI_ICON|Shell32.SHGFI_USEFILEATTRIBUTES;if(FolderType.Open==folderType){flags+=Shell32.SHGFI_OPENICON;}if(IconSize.Small==

c# - 使用 Interlocked.Exchange 更新引用和 Int32

众所周知,引用在32位处理器中占用4字节内存,在64位处理器中占用8字节内存。因此,处理器保证以机器的自然字大小为增量对内存进行单次读取和写入将以原子方式执行。另一方面,Interlocked类中有2个方法:publicstaticintExchange(refintlocation1,intvalue)和publicstaticTExchange(refTlocation1,Tvalue)whereT:class那么,问题是为什么Int32和引用类型需要Interlocked.Exchange?因为它是原子的,所以仅仅使用简单的赋值不能安全地完成吗? 最佳

c# - WIN32_Processor::ProcessorId 是否对所有计算机都是唯一的

我想为许可系统使用一些独特的东西。我决定使用Win32_ProcessorManagement类中的ProcessorID。我尝试了两个具有相同处理器类型的不同系统..它显示两个系统的处理器ID相同。我正在使用这段代码publicstaticStringGetCPUId(){StringprocessorID="";ManagementObjectSearchersearcher=newManagementObjectSearcher("Select*FROMWIN32_Processor");ManagementObjectCollectionmObject=searcher.Get

c# - 长整数可以在 32 位系统上工作吗?

如果我理解正确的话,一个int变量正在保存32位,将它限制在-20亿到20亿之间。但是,如果我使用长变量,它将保存为64位,从而可以存储更多数字。我使用的是64位系统,但如果我以64位存储数据,我的代码能否在32位系统上正常运行?谢谢! 最佳答案 你不用担心这个。long值将存储在2个内存地址中。Int64/long将始终为64位,而Int32/int将始终为32位。有一些影响(关于内存空间和性能),但最值得注意的可能是写/读操作在32位系统上不是原子的,但你不应该期望它们无论如何都是原子的,因为c#规范不提供此类保证。无论哪种方式

c# - 检查 List<Int32> 值是否连续

ListdansConList=newList();dansConList[0]=1;dansConList[1]=2;dansConList[2]=3;ListdansRandomList=newList();dansRandomList[0]=1;dansRandomList[1]=2;dansRandomList[2]=4;我需要一个方法,在评估上述列表时,将返回false对于dansRandomList和true对于dansConList基于事实dansConList在它的值中有一个连续的数字序列,而dansRandomList没有(缺少值3)。如果可能,最好使用LINQ。我尝

c# - 如何像这个程序一样在 Windows 中覆盖最大 32x32 鼠标大小

我希望我的程序能够覆盖32x32的最大鼠标尺寸,就像附图中的程序一样,图中的光标是72x72。这是来自ProcMon的捕获,显示了光标更改时发生的情况。但是,如果我尝试自己更改游标文件的注册表值,然后使用推送更改SystemParametersInfo(SPI.SPI_SETCURSORS,0,IntPtr.Zero,SPIF.SPIF_SENDCHANGE);然后光标会改变,但它仍然限制在32x32的最大尺寸。这个程序是如何绕过这个限制的?此外,光标在程序结束后仍然存在,因此它不能在运行时执行某些操作,但必须覆盖某处的设置。谢谢你的帮助,我在网上找不到这样的东西,所以我什至不知道是否

c# - 任何 CPU - 首选 32 位

AnyCPU-Prefer32bit选项有什么作用?虽然我知道WinRT不能处理exe并且只能运行Windows应用商店应用程序,但有几个问题exist在StackOverflow问同样的问题并且都引用这个blog上面写着:In.NET4.5andVisualStudio11thecheesehasbeenmoved.Thedefaultformost.NETprojectsisagainAnyCPU,butthereismorethanonemeaningtoAnyCPUnow.Thereisanadditionalsub-typeofAnyCPU,“AnyCPU32-bitpref