Tag: C#的

当按F12时出错,请到Visual Studio 2015 / C#

当我在Visual Studio 2015中按F12(转到定义)时,出现以下错误消息: 发生一个或多个错误 我已经尝试过了: closures解决scheme 删除.suo文件 重新构build解决scheme ..但是没有解决它。 请帮忙。

如何保持XmlSerializer杀死string中的NewLines?

假设我有一个简单的类,只有一个成员一个string。 public class Abc { private String text; public String Text { get { return this.text; } set { this.text = value; } } } 现在,当我序列化,然后使用可疑的XmlSerializer反序列化它时,任何包含换行符('\ r \ n'或Environment.NewLine)的文本都会被转换为'\ n'。 我如何保留换行符?

Qt编程:在Python或C ++中更高效?

尝试着深入Qt,但还没有做一个大型的项目。 目前使用Python,但我一直在想 – 在程序员的生产力方面,哪种语言更好? 在大多数语言之间的比较中,Python是显而易见的答案,因为你不必混淆内存pipe理和所有这些。 但是,对于Qt我不太确定。 它为C ++提供了足够的附加function(从我所知道的情况来看),大部分时间(不包括类定义和结构组件等附加function),一行Python代码大致等于一行C ++代码。 Qt为你做了几乎所有的内存pipe理,只要你坚持使用它的类,并且提供你可以在Python中find的漂亮容器的等价物。 我一直倾向于使用静态types的语言,但是由于各种各样的原因,我们也得到了Python的热潮。 但是,如果程序员的生产力与C ++相似,那么我可以跳出这种方式来获得其他好处 – 代码效率更高,用户安装的依赖性更less。 思考?

PropertyInfo:属性索引器?

我有以下代码: PropertyInfo[] originalProperties = myType.GetProperties(); 我想从originalProperties排除所有索引器(myVar [“key”]显示为名为“Item”的属性)。 什么是正确的方法? 排除propInfo.Name == "Item"不是选项的所有属性。

asynchronous/等待适合IO和CPU绑定的方法吗?

MSDN文档似乎声明async和await适用于IO绑定的任务,而Task.Run应该用于CPU绑定的任务。 我正在执行一个应用程序,执行HTTP请求来检索HTML文档,然后parsing。 我有一个像这样的方法: public async Task<HtmlDocument> LoadPage(Uri address) { using (var httpResponse = await new HttpClient().GetAsync(address)) //IO-bound using (var responseContent = httpResponse.Content) using (var contentStream = await responseContent.ReadAsStreamAsync()) return await Task.Run(() => LoadHtmlDocument(contentStream)); //CPU-bound } 这是好的和适当的使用async和await ,或者我过度使用它?

为什么返回一个函数本地值的引用而不是编译错误?

以下代码调用未定义的行为。 int& foo() { int bar = 1234; return bar; } g ++发出警告: 警告:对返回的局部variables“bar”的引用[-Wreturn-local-addr] 铿锵++也是: 警告:返回与本地variables“bar”相关联的堆栈内存的引用[-Wreturn-stack-address] 为什么这不是一个编译错误(忽略 – -Werror )? 有没有情况下返回一个本地变种的ref是有效的? 编辑正如所指出的,规范要求这是可编译的。 那么,为什么规范不禁止这样的代码呢?

第一个“C”在“calloc”中代表什么?

一个学生问这个问题,我不知道。 猜测包括:“计数”,“清除”,“分块”,“完整”,… 标准库文档没有说明它的含义,也没有类似的命名函数来指示模式。 有谁知道实际的词源,也许有一个权威的参考来支持它?

用g ++编译c ++ 14-code

我在Ubuntu 14.04 LTS上使用g ++ 4.8.4。 当试图用'-std = c ++ 14'编译时,我得到这个错误: g++: error unrecognized command line option '-std=c++14' 用'-std = c ++ 11'编译工作正常,所以我不知道发生了什么事情。 g ++真的不支持c ++ 14吗? 我使用错误的命令行选项? 我用“sudo apt-get install g ++”应该自动检索最新版本,是不是正确?

在.Net / C#中抛出多个exception

在我工作的应用程序中,任何业务逻辑错误都会导致引发exception,并且调用代码处理exception。 这种模式在整个应用程序中使用,运作良好。 我有一种情况,我将试图从业务层内执行一些业务任务。 对此的要求是一个任务的失败不应该导致该过程终止。 其他任务仍然应该能够执行。 换句话说,这不是一个primefaces操作。 我遇到的问题是,在操作结束时,我希望通知抛出exception的调用代码,确实发生了exception。 考虑下面的伪代码片段: function DoTasks(MyTask[] taskList) { foreach(MyTask task in taskList) { try { DoTask(task); } catch(Exception ex) { log.add(ex); } } //I want to throw something here if any exception occurred } 我扔什么? 我以前在职业生涯中遇到过这种模式。 在过去,我保存了所有exception的列表,然后抛出一个包含所有捕获的exception的exception。 这似乎不是最优雅的方法。 从每个例外中保留尽可能多的细节以呈现给调用代码是很重要的。 思考? 编辑:解决scheme必须使用.Net 3.5编写。 我不能使用任何beta库,或者如Bradley Grainger所提到的.Net 4.0中的AggregateException(下面),这将是集合exception抛出的一个很好的解决scheme。

VisualStudio 2008中没有足够的存储空间来处理此命令

当我尝试在VS 2008中编译程序集时,(有时候,通常在项目工作2-3小时后)出现以下错误 Metadata file '[name].dll' could not be opened — 'Not enough storage is available to process this command. 通常要摆脱我需要重新启动Visual Studio 我需要在我的项目中使用的程序集足够大(> 70 Mb),可能这就是这个错误的原因,在我以前的项目中我从来没有见过这样的东西。 好吧,如果这是我的问题是为什么发生这种情况,我需要做什么来阻止它的原因。 我有足够的可用内存在我的驱动器和2Gb的RAM(只有约1.2 Gb的exception发生时利用) 我search了这样的问题的答案。 build议通常涉及到: 到在WinXP中有限的用户处理程序的数量… 到每个进程可用内存的物理限制 我想也不能解释我的情况 对于用户处理程序和其他GUI资源 – 我不认为这可能是一个问题。 大的70Mb程序集实际上是一个无GUI的代码,可以与套接字一起工作,并实现专有协议的parsing器。 在我目前的项目中,我只有3个GUI窗体,GUI控件总数<100。 我想我的情况更接近这样一个事实,即在Windows XP中,进程地址空间受到2 GB内存的限制(考虑到内存分段,有可能我没有足够大的空闲段来分配内存)。 然而,很难相信在Visual Studio中使用这个项目2-3个小时之后,细分可能会如此之大。 任务pipe理器显示VS消耗大约400-500 Mb(OM + VM)。 在编译期间,VS只需要加载元数据。 那么这个库中有很多类和接口,但是我仍然期望1-2 Mb的数量足以分配编译器用来查找所有公共类和接口的元数据 (尽pipe这只是我的build议,我不知道当CLR加载程序集元数据时究竟发生了什么)。 另外,我会说,整个程序集的大小是如此之大,只是因为它是C++ CLI库,有其他的Um托pipe库静态链接到一个DLL 。 我估计(使用Reflector).NET(托pipe)代码大约是此程序集的5-10%。 任何想法如何定义该错误的真正原因? […]