草庐IT

assert_frame_equal

全部标签

c# - string.Equals ("string") 和 "String".Equals(string) 有什么区别?

下面两行比较字符串值的代码有什么区别吗stringstr="abc";if(str.Equals("abc"))和if("abc".Equals(str))在第一行中,我在字符串变量上调用equals方法,将其与字符串文字进行比较。第二行反之。仅仅是编码风格的不同,还是编译器处理这两个语句的方式不同。 最佳答案 唯一的区别是,在第一种情况下,当您执行以下操作时:str.Equals("abc")如果str为null,您将在运行时得到一个异常。通过这样做:"abc".Equals(str)如果str为null,您将得到false。

c# - Code First 迁移种子错误 : The binary operator Equal is not defined for the types 'System.Nullable` 1[System. Int32 ]' and ' System.Int32'

在我的数据库中播种时,我的更新标识符出现以下问题:context.ClientPromos.AddOrUpdate(cp=>new{cp.ClientID,cp.Recommendation_ID,cp.PromoCode_ID},newClientPromo{ClientID=0,Recommendation_ID=Rec30Off.RecommendationID,PromoCode_ID=pc30PerOffProd.PromoCodeID},newClientPromo{ClientID=0,Recommendation_ID=RecKnow.RecommendationID,

c# - 如何将 Enum 转换为 Int 以用于 Expression.Equals 操作?

我正在尝试在C#中动态构建一个表达式树,它被编译并用作LINQ-to-SQLWhere()调用的谓词。问题是我试图将Enum(以int作为其基础类型)直接与Int进行比较,但这失败并出现错误“成员MyEnumType没有支持的SQL转换”。代码:ParameterExpressionparam=Expression.Parameter(typeof(MyClass),"obj");//inputparameter-thisexposesapropertyoftheEnumtypeMemberExpressionenumMember=Expression.Property(param,"

c# - 如何使用 Moq 为接口(interface)模拟 `object.Equals(object obj)`

我有一个有趣的问题要解决。考虑像这样的一些接口(interface):publicinterfaceIMyThing{intId{get;}}现在我想测试使用这个接口(interface)的代码。也许有一些LINQ魔法。像这样:publicclassSomeClass{privateIMyThing_thing;...publicboolHasThing(IEnumerablethings){returnthings.Contains(_thing);}}我正在模拟所有实现IMyThing的对象使用Moq:publicstaticIMyThingMockMyThing(intnewId

c# - Debug.Assert 似乎不适用于 Mono

考虑以下C#程序:usingSystem;usingSystem.Diagnostics;namespaceTest{classMainClass{publicstaticvoidMain(string[]args){Debug.Assert(false);Debug.Fail("fail!");Console.WriteLine("HelloWorld!");}}}编译时使用:dmcs-debug-d:DEBUGMain.cs然后运行它:mono--debugMain.exe断言和失败似乎被忽略了。输出只是:HelloWorld!我在StackOverflow上查看了其他相关问题,但

c# - 为什么 ICollection<>.Contains 会忽略我重写的 Equals 和 IEquatable<> 接口(interface)?

我对EntityFramework项目中的导航属性有疑问。这是类MobileUser:[DataContract][Table("MobileUser")]publicclassMobileUser:IEquatable{//constructorsomitted....//////Theprimary-keyofMobileUser.///ThisisnottheVwdIdwhichisstoredinaseparatecolumn///[DataMember,Key,Required,DatabaseGenerated(DatabaseGeneratedOption.Identit

c# - 城堡动态代理 : How to Proxy Equals when proxying an interface?

我需要使用CaSTLeDynamicProxy来代理接口(interface),方法是向ProxyGenerator.CreateInterfaceProxyWithTarget提供接口(interface)实例。我还需要确保对Equals、GetHashCode和ToString的调用命中了我正在传递的具体实例上的方法,但我无法让它工作。换句话说,我希望这个小示例打印两次True,而实际上它打印True,False:usingSystem;usingCastle.Core.Interceptor;usingCastle.DynamicProxy;publicinterfaceIDum

c# - 在循环中使用 NUnit Assert 时,如何在错误消息中显示更多信息?

考虑以下代码:[Test]publicvoidWidgetTest(){foreach(Widgetwidgetinwidgets){Assert.AreEqual(0,widget.SomeValue);}}如果其中一个断言失败,我将收到一条非常无用的错误消息,如下所示:1)TestFailure:WidgetTest.TestSomeValueExpected:0Butwas:1atWidgetTest.TestSomeValue()那么,问题是,如何让NUnit显示更有用的信息,例如小部件的名称或循环的迭代等?即使是行号也会更有帮助,因为这是以自动方式运行的,我希望能够在不调试代

c# - 单元测试是否使 Debug.Assert() 变得不必要?

我准备好麦康奈尔的“CodeComplete”已经有一段时间了。现在我在Hunt&Thomas的“ThePragmaticProgrammer”中再次阅读它:使用断言!注意:不是单元测试断言,我的意思是Debug.Assert()。遵循SO问题WhenshouldIuseDebug.Assert()?和Whentouseassertionoverexceptionsindomainclasses断言对开发很有用,因为可以很快找到“不可能”的情况。而且它们似乎很常用。据我了解,断言在C#中通常用于检查输入变量的“不可能”值。为了使单元测试尽可能简洁和独立,我使用null和“不可能的”虚拟

c# - C# 可以提供 static_assert 吗?

我正在寻找一种在C#编程语言中进行编译时断言的方法,例如C++的BOOST库或新的C++0x标准提供的断言。我的问题是双重的;这可以在标准的、可移植的C#中实现吗?或者,是否可以通过对给定C#编译器的怪癖进行不可移植的假设来实现该行为?在谷歌上快速搜索发现以下链接指向一个technique,我不确定其标准合规性和兼容性。 最佳答案 该方法与其他没有内置静态断言的语言(Delphi、较旧的C++等)相同:找到一种机制将要断言的条件转换为编译器不满意的条件,如果条件是假的。对于C#,最容易利用的机制之一是关于将负文字/常量分配给无符号类