Tag: C#的

如果.NET中的MemoryStream未closures,是否会产生内存泄漏?

我有以下代码: MemoryStream foo(){ MemoryStream ms = new MemoryStream(); // write stuff to ms return ms; } void bar(){ MemoryStream ms2 = foo(); // do stuff with ms2 return; } 有没有机会,我已经分配的MemoryStream将以某种方式不能被丢弃? 我有一个同行评审坚持我手动closures这个,我找不到信息来判断他是否有一个有效的点。

向量,结构和std :: find

再次与我的载体。 我希望我不太烦人。 我有这样的结构: struct monster { DWORD id; int x; int y; int distance; int HP; }; 所以我创build了一个向量: std::vector<monster> monsters; 但现在我不知道如何通过vectorsearch。 我想在向量中find怪物的ID。 DWORD monster = 0xFFFAAA; it = std::find(bot.monsters.begin(), bot.monsters.end(), currentMonster); 但显然这是行不通的。 我只想通过结构的.id元素进行迭代,我不知道该怎么做。 非常感谢帮助。 谢谢 !

如何通过.NET访问ARP协议信息?

我正试图弄清楚我们的局域网中有哪些设备在线和离线。 我见过很多程序在做一种graphics化的networking概述,介绍局域网IP和MAC地址。 我想知道是否以及如何从C#/。NET中提取这些(ARP?)信息? 任何示例代码片断/链接将不胜感激。

在C#中打印Pdf

我是新来的C#。 我在网上查找关于如何打印PDF的教程,但找不到一个。 然后我想,可以使用itextpdf来读取它,就像这里提到的那样 在VB.NET或C#中使用itextsharp dll读取PDF内容 然后打印它。 如果是这样,怎么样?

控制台应用程序中的全局热键

有谁知道如何在控制台应用程序中使用RegisterHotKey / UnregisterHotKey API调用? 我假设设置/删除热键是一样的,但是当按键被按下时,我怎样才能接通电话? 我看到的每个示例都是针对Winforms,并使用protected override void WndProc(ref Message m){…} ,这对我来说是不可用的。 更新:我有什么是下面,但事件是从来没有打。 我以为这可能是因为当你加载ConsoleShell它阻止进一步的执行,但即使我把SetupHotkey到另一个线程没有任何反应。 有什么想法吗? class Program { static void Main(string[] args) { new Hud().Init(args); } } class Hud { int keyHookId; public void Init(string[] args) { SetupHotkey(); InitPowershell(args); Cleanup(); } private void Cleanup() { HotKeyManager.UnregisterHotKey(keyHookId); } private void SetupHotkey() { keyHookId = HotKeyManager.RegisterHotKey(Keys.Oemtilde, KeyModifiers.Control); […]

火和忘记的方法

相关的这个答案 , 如果我确实想要“消除并忘记”一个返回任务的方法,并且(为了简单起见),让我们假设该方法不会抛出任何exception。 我可以使用答案中列出的扩展方法: public static void Forget(this Task task) { } 使用这种方法,如果Task存在导致抛出exception的错误,那么当抛出exceptionexception时,exception将被吞下并且不被注意。 问题:在这种情况下,扩展方法的forms不是更合适吗? public static async void Forget(this Task task) { await task; } 所以编程错误会引发exception并升级(通常会导致进程中断)。 在预期(和可忽略)exception的方法中,这个方法需要变得更精细(作为一个旁白,关于如何构build一个可以接受和可忽略的exceptiontypes列表的方法的任何build议? )

C:使用clock()来测量multithreading程序中的时间

我一直使用clock()来衡量我的应用程序从开始到结束花费多less时间, int main(int argc, char *argv[]) { const clock_t START = clock(); // … const double T_ELAPSED = (double)(clock() – START) / CLOCKS_PER_SEC; } 由于我开始使用POSIX线程,这似乎失败了。 它看起来像clock()N线程增加N倍。 因为我不知道有多less线程正在同时运行,所以这种方法失败了。 那我怎么测量已经过了多less时间?

用C ++表示128位数字

用C ++表示128位数字的最好方法是什么? 它应该尽可能地和内置的数字types(即支持所有的算术运算符等)保持一致。 我正在考虑build立一个具有2个64位或4个32位数的类。 或者可能只是创build一个128位的内存块,自己做一切。 有一些更简单/更标准的方法,或者我自己实现时不太可能搞砸的东西? 🙂 如果它可以扩展到256位,512位等,也是很好的。

弃用静态关键字…不再?

在C ++中,可以在翻译单元中使用static关键字来影响符号的可见性(variables或函数声明)。 在3092年,这是不赞成的: 附件D.2 [depr.static] 在命名空间范围内声明对象时,不推荐使用static关键字(见3.3.6)。 在n3225,这已被删除。 我能find的唯一文章是有些不正式的。 但是为了与C兼容(以及用C ++编译C程序的能力),它的确强调了这一点。 然而,直接编译一个C程序可能是一个令人沮丧的经验,所以我不确定是否值得考虑。 有谁知道它为什么被改变?

C ++模板构造函数

我希望有一个不带参数的模板构造函数的非模板类。 据我所知,这是不可能的(因为它会违反默认的构造函数 – 我是吗? ), 解决方法如下: class A{ template <typename U> A(U* dummy) { // Do something } }; 也许有更好的替代scheme(或更好的解决方法)? 谢谢。