小编Cha*_*lor的帖子

将所有警告视为错误

这应该是显而易见的,但我无法让它工作......

我想要做的很简单:如果有警告,我希望我的编译失败并出现错误.是的,着名的TreatWarningsAsErrors......

我在我的C#项目属性中配置它

将警告视为错误

这导致TreatWarningsAsErrors我的csproj 中的预期部分:

<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
Run Code Online (Sandbox Code Playgroud)

到目前为止private一切顺利,如果我在我的代码中添加一个无用的变量,它会导致编译错误:

private int unused;
Run Code Online (Sandbox Code Playgroud)

错误3警告错误:从不使用字段'XXXX.unused'

但整个问题是,我无法使其适用于装配参考问题.如果我有一个未知程序集的引用,编译器(devenv或msbuild)会发出警告,但我想要一个错误.

最终,我正在尝试配置一个gated check-in TFS构建配置,因此如果找不到 " 引用的组件'XXXX',TFS将拒绝提交. "警告.比修改构建过程模板更简单的东西会很棒.

.net c# msbuild tfs warnings

42
推荐指数
2
解决办法
2万
查看次数

静态方法总是保存在内存中吗?

我的整个开发团队都认为,静态方法是一件很糟糕的事情.

在某些情况下我真的没有看到任何缺点.当我之前需要无状态方法时,我总是为此目的使用静态方法.

我同意他们的一些观点,例如我知道他们很难测试(尽管这并非不可能).

我不知道的是,他们声称,静态方法总是保存在内存中,并将填充基本的内存使用量.因此,如果您在程序中使用100个静态方法,则在程序启动时,所有方法都会加载到内存中,并且会不必要地填充内存.此外,静态方法会增加内存泄漏的风险.

真的吗?

为了调用方法而必须创建一个类的新实例是非常不方便的.但这就是他们现在如何做到这一点,在方法中创建一个实例并调用该方法,这可能只是一个静态方法.

c# static

18
推荐指数
2
解决办法
6459
查看次数

NUnit测试调试

我正在研究几何图书馆.有200多个单元测试.

每当我选择"全部运行"时,有一个特别顽固的测试失败,但是当我单独运行该测试或者使用调试器时测试通过.我相信这个问题出现在我从视觉工作室'13转移到'15版的时候.

现在关于几何库的一些注意事项:

对象是不可变的.

测试之间没有共享对象.

所以我的问题:这种奇怪行为的可能原因是什么?

编辑:

[Test()]
public void Plane_IntersectionWithPlane_IdenticalPlane()
{
     Plane testPlane = new Plane(new Direction(Point.MakePointWithInches(2, -1, 1)), 
                                               Point.MakePointWithInches(2, 1, 2));
     Line found = (testPlane.Intersection(testPlane));

     Line expected = new Line(new Direction(Point.MakePointWithInches(0, -1, -1)), 
                                            Point.MakePointWithInches(2, 1, 2));
     Assert.IsTrue(found.Equals(expected));
}
Run Code Online (Sandbox Code Playgroud)

c# nunit unit-testing

16
推荐指数
2
解决办法
658
查看次数

何时使用Mock v.Stub,或两者都没有?

我一直在读Mocks和Stubs,他们的差异和用途.我仍然有点困惑,但我想我已经得到了它的主旨.

现在我想知道应用程序.我可以看到在测试场景中创建"假"对象的用法,其中实际对象太复杂而无法测试一个方面.

但是让我们考虑我的应用程序:我正在研究计算几何库.我们的库定义了点,线,linesegments,向量,多边形和多面体,以及一堆其他对象和所有常见的几何操作.任何给定对象都存储为点或方向列表或较低级别对象.但是这些对象都不会花费超过几毫秒的时间来生成.

当我测试这个库时,在任何地方使用Mocks/Stubs是否有意义?

现在我们只使用特定的测试用例.我们称它们为存根,但我认为它们不符合存根的技术定义.你觉得那个更好的词汇是什么?"测试用例"?"例子"?

SourceCode:https://bitbucket.org/Clearspan/geometry-class-library/src

编辑:请注意,我们正在努力在所有几何对象中保持不变性,因此测试操作结果只是有意义,而不是初始对象的状态更改.

c# unit-testing mocking stubs geometry-class-library

8
推荐指数
1
解决办法
808
查看次数

如何确定多面体是否凸出?

我正在寻找一种有效的算法来确定多面体是否凸出.

我开始检查欧拉特征是2.我还检查每个面都是凸面的.但这仍然没有抓住很多案例.

c# convex polyhedra

5
推荐指数
2
解决办法
885
查看次数

围绕多面体的最小矩形框

我正在寻找一种算法,找到包围多面体的最小盒子.

我的想法如下:找到最大的一侧,并移动实体,使侧面与x轴对齐.找到遇到这一侧的下一个最大的一侧,并将其尽可能靠近z轴对齐,同时将另一侧放在x上.然后,计算x,y和z的最大差异.使用这些尺寸创建周围的形状,然后将框移回对象的原始位置.

对此有更有效的策略吗?我的想法是否忽略了一些角落案例?

编辑:现在假设要限制的对象是凸的.虽然,对一般情况的答案也是受欢迎的.

polyhedra computational-geometry geometry-class-library

5
推荐指数
1
解决办法
198
查看次数

Outermost Polygon from a set of Edges

在此处输入图片说明Suppose I have a set of 2d line segments that are all connected. I need an algorithm that finds the outermost segments in the set. That is, the minimal subset that bounds the same region.

Note: this is not the same as finding the convex hull of the points making up the segments.

Edit: On the top is the initial set of segments. Below that is the same outline with interior segments deleted. (Ignore the little grey crosses, they're just …

line-segment computational-geometry geometry-class-library

5
推荐指数
1
解决办法
1552
查看次数

字典:将调用.Keys与.Values一致订购?

假设我有一个字典,然后调用.Keys,然后调用.Values,没有干预操作.密钥的排序是否与值的排序一致?

换句话说,第n个键是否与字典中之前的第n个值相对应?

c# dictionary

1
推荐指数
2
解决办法
169
查看次数