小编Tit*_*tus的帖子

File_adLines上的IEnumerable.Take(0)似乎没有处理/关闭File句柄

我有一个函数,它使用with 和combination 来跳过n代码y行并从给定文件中获取行.当我尝试打开下次给出的文件时:File.ReadLinesSkipTakefilePath

string[] Lines = File.ReadLines(filePath).Skip(0).Take(0).ToArray();
using (StreamWriter streamWriter = new StreamWriter(filePath))
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

File in use by another process在" using"行上有一个例外.

它看起来像是IEnumerable.Take(0)罪魁祸首,因为它返回一个空IEnumerable而不枚举返回的对象File.ReadLines(),我相信它不会处理文件.

我对吗?他们不应该列举以避免这种错误吗?怎么做得好?

c#

27
推荐指数
2
解决办法
1527
查看次数

基本的CRC32维基百科实现不同于在线看到的标准CRC32

我有一个基本的CRC32实现遵循维基百科的代码片段:1个样本.我认为我做得对,修改了使用n位寄存器进行余数多项式而不是n + 1位用法.

我得到的结果与在线CRC32实现结果不同.在实施中我需要更改什么?

请忽略逻辑的Console.Writeline语句.

    const UInt32 poly = 0x04C11DB7;

    public static UInt32 GenerateCRC_32(byte[] message)
    {
        byte[] augmentedMsg = new byte[message.Length + 4];
        message.CopyTo(augmentedMsg, 0);

        UInt32 remainder = Convert.ToUInt32(augmentedMsg[0]) << 24 |
                           Convert.ToUInt32(augmentedMsg[1]) << 16 |
                           Convert.ToUInt32(augmentedMsg[2]) <<  8 |
                           Convert.ToUInt32(augmentedMsg[3]);

        for (Int32 i = 4; i < augmentedMsg.Length; i++)
        {
            for (int bit = 0; bit < 8; bit++)
            {
                UInt32 nextBit = ((UInt32)augmentedMsg[i] >> (7 - bit)) & 0x01;
                if ((remainder & 0x80000000) > 0)
                { …
Run Code Online (Sandbox Code Playgroud)

c# crc32 crc

12
推荐指数
1
解决办法
490
查看次数

相当于C#"不安全"代码中的memset

我有一个C#DLL,其代码派生自一个基类,它是用托管C++编写的.(我对基类代码没有任何控制权)

此基类(在托管C++中)具有成员

int *buffer
Run Code Online (Sandbox Code Playgroud)

预期派生类(在C#中)是memset(用零填充).派生类知道缓冲区的大小.

我使用不安全的上下文,在派生类中访问基类的成员"int*buffer".请告诉我有什么特别的方法可以在c#中的"不安全"上下文中设置缓冲区.

我已经研究过这个与C#中的memset相同的是什么?有关详细信息,但我想知道有什么特别针对"不安全"的背景.

背景:这是一个转换项目,其中派生类本身之前是托管c ++.现在我将派生类DLL单独转换为C#.我也无法控制基类代码!当前代码流如下:只有派生类知道缓冲区的大小.基类通过从派生中获取缓冲区的大小来为该特定大小创建内存,但它不会填充零.派生类Zero首先填充它,然后需要用其内容适当地填充缓冲区.虽然很奇怪,但事实就是如此.

谢谢!

c# c++-cli

0
推荐指数
1
解决办法
3426
查看次数

标签 统计

c# ×3

c++-cli ×1

crc ×1

crc32 ×1