Tag: C#的

如何将Visual Studio默认为C#项目而不是VB.NET?

Visual Studio 2010保持默认VB.NET项目,而不是C#,我从2008导入我保存的设置,默认为C#项目没有解决问题.. 我总是不小心创build了VB.NET项目,然后狠狠地拍了一下自己,然后继续删除项目并重新创build它的C#版本。

为什么这个铸造是多余的?

我有一个方法有以下重载: string Call(string function, Dictionary<string, object> parameters, object body) string Call(string function, Dictionary<string, object> parameters, JObject body) 现在我又增加了一个重载: string Call(string function) { return Call(function, null, (JObject) null); } 我向JObject添加了一个JObject以便编译器知道应该使用哪个超载。 但是,Visual Studio告诉我,演员是多余的。 但是为什么我的电话没有演员模糊呢?

GC或不GC

我最近看到两个非常好的教育语言会谈: Herb Sutter 首先介绍了C ++ 0x的所有优秀特性,为什么C ++的未来似乎比以前更加光明,以及M $如何被认为是这个游戏中的一个好人。 这个话题围绕着效率展开,以及如何最小化堆活动通常会提高性能。 另一个由Andrei Alexandrescu推动,从C / C ++转换到他的新游戏改变者D。 D的大部分东西看起来非常有动力和devise。 但是,有一件事让我感到惊讶,就是D推动垃圾收集,所有的类都是通过引用创build的 。 更令人困惑的是,在“ 资源pipe理 ”部分特别指出了“D编程语言参考手册”中的下列内容: 垃圾回收消除了在C和C ++中所需的单调乏味,容易出错的内存分配跟踪代码。 这不仅意味着更快的开发时间和更低的维护成本,而且最终的程序运行速度更快 ! 这与萨特关于最小化堆活动的不断讨论相冲突。 我非常尊重Sutter和Alexandrescou的见解,所以我对这两个关键问题感到有点困惑 不通过引用创build类实例会导致很多不必要的堆活动吗? 在哪些情况下我们可以使用垃圾收集而不牺牲运行时间性能?

我在哪里可以学到更多关于C ++ 0x的知识?

我想了解更多关于C ++ 0x。 什么是一些很好的参考和资源? 有没有人写过关于这个主题的好书呢?

在C ++成员函数中“if(!this)”有多糟?

如果我遇到旧的代码, if (!this) return; 在一个应用程序,这是多么严重的风险? 这是一个危险的定时炸弹,需要立即在应用程序范围内进行search和销毁,还是更像是一种可以安静地放置的代码味? 当然,我不打算编写这样的代码。 相反,我最近在我们的应用程序的许多部分使用的旧核心库中发现了一些东西。 想象一下CLookupThingy类有一个非虚拟的 CThingy *CLookupThingy::Lookup( name )成员函数。 很显然,在那些牛仔时代,其中一位程序员遇到了很多崩溃,从函数传递NULL CLookupThingy * s,而不是修复数百个调用站点,他悄悄地修复了Lookup(): CThingy *CLookupThingy::Lookup( name ) { if (!this) { return NULL; } // else do the lookup code… } // now the above can be used like CLookupThingy *GetLookup() { if (notReady()) return NULL; // else etc… } CThingy […]

C ++中的Lambda-Over-Lambda 14

如何recursionlambda调用结束/终止? #include <cstdio> auto terminal = [](auto term) // <———+ { // | return [=] (auto func) // | ??? { // | return terminal(func(term)); // >———+ }; }; auto main() -> int { auto hello =[](auto s){ fprintf(s,"Hello\n"); return s; }; auto world =[](auto s){ fprintf(s,"World\n"); return s; }; terminal(stdout) (hello) (world) ; return […]

使用Wt C ++框架的经验?

有没有人认真使用Wt? 它工作正常吗? 你有没有遇到一些限制? 还是优点? Wt是用于开发Web应用程序的C ++库。 请避免讨论C ++是否是Web开发的良好语言。 我只是想尝试一下,因为这似乎是一件有趣的事情。

在任何stdlib头文件中定义types如uint32,int32,uint64,int64?

我经常看到使用uint32,uint64等types的源代码,我想知道它们应该由程序员在其应用程序代码中定义还是在标准lib头文件中定义。 在我的应用程序源代码上使用这些types的最佳方法是什么?

在编译时计算Cstring的长度。 这真的是一个constexpr?

我想在编译时计算string文字的长度。 为此,我使用以下代码: #include <cstdio> int constexpr length(const char* str) { return *str ? 1 + length(str + 1) : 0; } int main() { printf("%d %d", length("abcd"), length("abcdefgh")); } 一切都按预期工作,程序打印4和8.由clang生成的汇编代码显示结果是在编译时计算的: 0x100000f5e: leaq 0x35(%rip), %rdi ; "%d %d" 0x100000f65: movl $0x4, %esi 0x100000f6a: movl $0x8, %edx 0x100000f6f: xorl %eax, %eax 0x100000f71: callq 0x100000f7a ; symbol stub […]

在C#中,析构函数和Finalize方法在类中有什么不同?

在一个类的析构函数和Finalize方法之间有什么区别,如果有的话? 我最近发现Visual Studio 2008认为析构函数与Finalize方法同义,这意味着Visual Studio不会让您同时在类中定义两个方法。 例如,下面的代码片段: class TestFinalize { ~TestFinalize() { Finalize(); } public bool Finalize() { return true; } } 给析构函数中的Finalize调用提供以下错误: 这个调用在下面的方法或属性之间是不明确的:'​​TestFinalize。〜TestFinalize()'和'TestFinalize.Finalize()' 如果Finalize的调用被注释掉了,则会出现以下错误: types'ManagementConcepts.Service.TestFinalize'已经使用相同的参数types定义了一个名为'Finalize'的成员