Tag: C#的

function的try-catch语法之间的区别

我最近遇到了这个语法的try-catch函数。 struct A { int a; A (int i) : a(i) // normal syntax { try {} catch(…) {} } A () // something different try : a(0) {} catch(…) {} void foo () // normal function try {} catch(…) {} }; 两种语法都是有效的 。 除了编码风格之外,这些语法还有什么技术上的区别吗? 从任何方面来看,其中一种语法是否优于其他语法?

C和C ++优化器通常知道哪些函数没有副作用吗?

对于非常常见的math函数,比如sin,cos等等,编译器是否意识到它们没有副作用,并且能够将它们移动到外部循环? 例如 // Unoptimized double YSinX(double x,int y) { double total = 0.0; for (int i = 0; i < y; i++) total += sin(x); return total; } // Manually optimized double YSinX(double x,int y) { double total = 0.0, sinx = sin(x); for (int i = 0; i < y; i++) total += sinx; […]

如何在.NET中使用真实文件进行集成testing?

我有一些类实现了一些与文件系统和文件有关的逻辑。 例如,我正在执行以下任务作为此逻辑的一部分: 检查某个文件夹是否具有特定的结构(例如,它包含具有特定名称的子文件夹等) 从这些文件夹加载一些文件并检查它们的结构(例如,这些是一些configuration文件,位于特定文件夹内的某个地方) 从configuration文件加载额外的文件进行testing/validation(例如,这个configuration文件包含有关其他文件在同一文件夹中的信息,应该有其他内部结构等) 现在,所有这些逻辑都有一些工作stream程,并且抛出exception(如果某些内容不正确)(例如,在特定文件夹位置找不到configuration文件)。 此外,这个逻辑中还包含了Managed Extensibility Framework(MEF) ,因为我正在检查的这些文件中有一些是我手动加载到MEF聚合等的pipe理DLL。 现在我想以某种方式testing所有这些。 我正在考虑在硬盘上创build几个物理testing文件夹,涵盖各种testing用例,然后运行我的代码。 我可以创build例如: 具有正确结构的文件夹和所有有效的文件 文件夹结构正确但configuration文件无效 正确的结构,但缺lessconfiguration文件等文件夹… 这是正确的方法吗? 我不确定在这种情况下究竟如何运行我的代码…我当然不想运行整个应用程序,并指出它检查这些模拟文件夹。 我应该使用一些unit testing框架来编写一种“unit testing”,它执行我的代码对这些文件系统对象? 一般来说,这是否是这种testing场景的正确方法? 还有其他更好的方法吗?

AForge和OpenCV的区别

我只是学习计算机视觉和C#。 看起来像两个突出的image processing库是OpenCV和AForge 。 这两者有什么区别? 我正在用C#编写一个基本的图像编辑器,而在研究过程中,我也遇到过两篇文章。 但我真的不知道为什么我会select一个。 我想最终改进应用程序,以包括更多的高级function。 谢谢。

用于假人的expression树?

我是这种情况下的假人。 我试图在谷歌上看到这些是什么,但我只是不明白。 有人能给我一个简单的解释,说明他们是什么,为什么他们有用吗? 编辑:我正在谈论.NET中的LINQfunction。

列出由cmake生成的Visual Studio C ++项目中的头文件

我正在为我们的产品构build一个基于cmake的构build系统。 问题是由cmake生成的Visual Studio项目在解决scheme浏览器中不显示头文件。 我需要添加到CMakeList.txt列出头文件? 首选的解决scheme是不需要列出每个特定的头文件。 解决scheme这是我附带的解决scheme: file(GLOB_RECURSE INCS "*.h") add_library(myLib ${SRCS} ${INCS}) 谢谢

MS Visual Studio:如何从发布中排除某些项目文件夹?

我有一些我想保留在项目中的文件夹,但不包括在发布中。 那可能吗?

C#switch语句的默认标签如何处理可为空的枚举?

C#switch语句的默认标签如何处理一个可为空的枚举? 默认标签是否可以捕获空值以及任何未处理的情况?

在C ++中转换为bool的性能影响是什么?

[这个问题与这个问题有关,但不一样。] 我的编译器警告将某些types隐式转换或转换为bool,而显式转换不会产生警告: long t = 0; bool b = false; b = t; // performance warning: forcing long to bool b = (bool)t; // performance warning b = bool(t); // performance warning b = static_cast<bool>(t); // performance warning b = t ? true : false; // ok, no warning b = t != 0; // […]

为什么使用QVector(Qt)而不是std :: vector

我对C ++和Qt非常陌生,但我非常擅长C#/ Java。 关键是我喜欢跨平台,但是我和Qt混淆了。 不是std::vector已经是跨平台的,不是提供了一个相当于非跨平台的东西吗? 另外, File和QFile不同? 链接会很好,谢谢:)