Tag: C#的

如何避免APIdevise中“参数太多”的问题?

我有这个API函数: public ResultEnum DoSomeAction(string a, string b, DateTime c, OtherEnum d, string e, string f, out Guid code) 我不喜欢它。 因为参数顺序变得不必要的重要。 添加新字段变得更加困难。 很难看到传递的是什么。 将方法重构成更小的部分比较困难,因为它会在子函数中传递所有参数。 代码很难阅读。 我想出了一个最明显的想法:有一个对象封装数据并传递,而不是逐个传递每个参数。 这是我想出来的: public class DoSomeActionParameters { public string A; public string B; public DateTime C; public OtherEnum D; public string E; public string F; } 这减less了我的API声明: public ResultEnum DoSomeAction(DoSomeActionParameters parameters, out […]

为什么增强的GCC 6优化器打破实用的C ++代码?

GCC 6有一个新的优化器function :它假定this总是不为空,并基于this优化。 值范围传播现在假定C ++成员函数的这个指针是非空的。 这消除了常见的空指针检查, 但也打破了一些不合格的代码库(如Qt-5,Chromium,KDevelop) 。 作为一个临时的work-around -fno-delete-null-pointer-checks可以被使用。 错误的代码可以通过使用-fsanitize = undefined来识别。 更改文件清楚地表明这是危险的,因为它打破了令人吃惊的常用代码量。 为什么这个新的假设会打破实用的C ++代码呢? 有没有特定的模式,不小心或不知情的程序员依赖这种特定的未定义的行为? 我无法想象任何人if (this == NULL)因为这是不自然的写作。

read()和recv()之间以及send()和write()之间有什么区别?

在socket编程中,read()和recv()之间以及send()和write()之间有什么区别? 性能和速度等行为。

.NET框架如何为OutOfMemoryException分配内存?

在C ++中,实际上可以在不分配内存的情况下通过值抛出exception,所以这种情况是有道理的。 但在.NET框架中, OutOfMemoryException是一个引用types,因此它被分配在一个堆上。 如果没有足够的内存来创build新对象,.NET框架如何为OutOfMemoryException分配内存?

C ++中make_shared和normal shared_ptr的区别

std::shared_ptr<Object> p1 = std::make_shared<Object>("foo"); std::shared_ptr<Object> p2(new Object("foo")); 许多谷歌和stackoverflow的职位上有这个,但我不明白为什么make_shared比直接使用shared_ptr更有效率。 有人可以解释我一步一步创build的对象序列和由两者完成的操作,以便我能够了解make_shared是如何有效的。 上面给出了一个例子供参考。

密码屏蔽控制台应用程序

我尝试了下面的代码… string pass = ""; Console.Write("Enter your password: "); ConsoleKeyInfo key; do { key = Console.ReadKey(true); // Backspace Should Not Work if (key.Key != ConsoleKey.Backspace) { pass += key.KeyChar; Console.Write("*"); } else { Console.Write("\b"); } } // Stops Receving Keys Once Enter is Pressed while (key.Key != ConsoleKey.Enter); Console.WriteLine(); Console.WriteLine("The Password You entered is : […]

我如何利用C#中的名字和姓氏的首字母大写?

有没有简单的方法来大写字母的第一个字母,并降低其余的呢? 有没有内置的方法,还是我需要做自己的?

C的有用GCC标志

除了设置-Wall和设置-std=XXX ,还有哪些其他真正有用的,但较less知道的编译器标志在C中有用? 我特别感兴趣的任何额外的警告,和/或在某些情况下将警告转为错误,以绝对减less任何意外types的不匹配。

日常机器如何编程?

如何编程日常机器(不是像电器,数字手表等那么多的电脑和移动设备)? 什么样的代码进入可口可乐自动售货机的编程? 我的咖啡机如何接受预定的时间,并在几小时后开始酝酿一壶咖啡? 这些机器是否有操作系统,还是更基础? 他们是用汇编,C还是其他语言编写的? 而且,我真的很想find一些列出这些操作系统或底层代码系统的资源,如果可能的话,甚至可以使用源代码。 如果有人知道这样的资源(search什么都没有给我),那将是太棒了。

VB.NET相当于C#var关键字

是否有一个相当于C# var关键字的VB.NET? 我想用它来检索一个LINQ查询的结果。