Tag: C#的

在Visual Studio 2008中进行debugging时,“不允许对64位应用程序进行更改”

我正在使用Visual Studio 2008,C#。 我尝试使用编辑和继续(在debugging时编辑代码),并得到这个exception: “不允许对64位应用程序进行更改” 这是为什么? 有没有解决方法?

如何排除TeamCity中dotCover覆盖的types和方法?

我有一个现有的C#4项目,我已经通过使用TestDriven.Net和Visual Studio覆盖function,即Test With – > Coverage从上下文菜单检查了testing覆盖率。 该项目包含一些代码,我不想要覆盖,我解决了这些types和方法添加[ExcludeFromCodeCoverage] 。 我们刚刚将TeamCity升级到6.0.3,并且在NUnit构build步骤中添加了dotCover覆盖。 我已经设法删除“filter”部分中的外部程序集(例如NHibernate)(通过明确指出我想要覆盖的程序集),但我正在努力如何从覆盖程序集中排除types和方法。

C# – 线程池与任务

正如有些人在.NET 4.0中看到的,他们已经添加了一个新的命名空间System.Threading.Tasks ,它基本上就是一个任务。 我只用了几天,从使用ThreadPool。 哪一个更有效率,更less资源消耗? (或者只是更好的整体?)

在C#中创build一个通用的方法

我正试图将一堆类似的方法合并成一个通用的方法。 我有几个方法返回查询string的值,或者如果该查询string不存在或不正确的格式,则返回null。 如果所有的types都是本地可为空的,这将是很容易的,但我必须使用可空的genericstypes的整数和date。 这是我现在拥有的。 但是,如果数字值无效,它将返回0,不幸的是在我的scheme中有效的值。 有人能帮我吗? 谢谢! public static T GetQueryString<T>(string key) where T : IConvertible { T result = default(T); if (String.IsNullOrEmpty(HttpContext.Current.Request.QueryString[key]) == false) { string value = HttpContext.Current.Request.QueryString[key]; try { result = (T)Convert.ChangeType(value, typeof(T)); } catch { //Could not convert. Pass back default value… result = default(T); } } return result; }

在C#中双派遣?

我曾经听过/读过这个词,但不太明白它的含义。 我应该什么时候使用这种技术,我将如何使用它? 任何人都可以提供一个好的代码示例

Visual Studio:LINK:致命错误LNK1181:无法打开input文件

我已经有一段时间在Visual Studio 2010中遇到了一个奇怪的错误。 我有一个解决scheme,包括一个编译为静态库的项目,另一个非常简单但依赖于这个库的项目。 有时候,在最后几天,重build解决scheme或者仅仅使用1-3修改源文件编译后,出现以下错误: 2>LINK : fatal error LNK1181: cannot open input file 'thelibrary.lib' ========== Rebuild All: 1 succeeded, 1 failed, 0 skipped ========== 编译thelibrary.lib是成功的,没有任何错误或警告。 我已经尝试清理解决scheme,但这并不总是奏效。 这里有什么问题?

为什么构buildstd :: optional <int>比std :: pair <int,bool>更昂贵?

考虑这两种方法可以表示一个“可选的int ”: using std_optional_int = std::optional<int>; using my_optional_int = std::pair<int, bool>; 鉴于这两个function… auto get_std_optional_int() -> std_optional_int { return {42}; } auto get_my_optional() -> my_optional_int { return {42, true}; } … g ++ trunk和clang ++ trunk (使用-std=c++17 -Ofast -fno-exceptions -fno-rtti )会生成以下程序集: get_std_optional_int(): mov rax, rdi mov DWORD PTR [rdi], 42 mov BYTE PTR [rdi+4], 1 ret […]

如何统计C中的Unicodestring中的字符

比方说,我有一个string: char theString[] = "你们好āa"; 考虑到我的编码是utf-8,这个string是12个字节长(三个汉字字符是三个字节,拉丁字符与macron是两个字节,而'a'是一个字节: strlen(theString) == 12 我如何计算字符的数量? 我怎样才能做相当于下标: theString[3] == "好" 我怎么能切片,并猫这样的string?

令人困惑的typedef涉及类范围

我正在阅读C ++项目的代码,它包含以下forms的代码: namespace ns { class A {}; class B {}; } struct C { typedef ns::A* ns::B::* type; }; 有人可以解释typedef行的含义吗? type似乎是ns::B指向ns::A成员的某种指针,但我不确定。 真实代码中的A类和B类不是空的,但是我认为这里没有关系。 这里是一个生动的例子 。

使用委托构造函数的成员初始化

我已经开始尝试C ++ 11标准了,我发现这个问题描述了如何从同一个类中的另一个ctor调用你的ctor,以避免使用init方法等等。 现在我正在尝试使用类似下面的代码: HPP: class Tokenizer { public: Tokenizer(); Tokenizer(std::stringstream *lines); virtual ~Tokenizer() {}; private: std::stringstream *lines; }; CPP: Tokenizer::Tokenizer() : expected('=') { } Tokenizer::Tokenizer(std::stringstream *lines) : Tokenizer(), lines(lines) { } 但是,这给了我错误: In constructor 'config::Tokenizer::Tokenizer(std::stringstream*)': /path/Tokenizer.cpp:14:20: error: mem-initializer for 'config::Tokenizer::lines' follows constructor delegation我已经尝试移动Tokenizer()第一个和最后一个名单,但没有帮助。 这是什么原因,我应该如何解决? 我已经尝试使用this->lines = lines;将lines(lines)移动到主体this->lines = lines; 相反,它工作正常。 但我真的很想能够使用初始化列表。 提前致谢!