草庐IT

equal-range

全部标签

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# - 通用约束 : Can I test Equality of generic that can be a reference or value type?

我想要一个通用类,它可以接受引用类型或值类型,并且只执行基于相等性测试的操作。考虑以下几点:publicclassPropertywhereTProp:struct,IEquatable{publicTPropValue;publicvoidSetValue(ObservableObjectowner,TPropvalue){if(!Value.Equals(value))//cannotuse!=onstructconstrainedTProp{//...settheproperty}}}publicclassByRefPropertywhereTProp:class//Dontwa

c# - 为什么 Object.Equals() 在从不同的程序集实例化时对相同的匿名类型返回 false?

我有一些代码可以将强类型业务对象映射到匿名类型,然后将其序列化为JSON并通过API公开。将我的解决方案重组为单独的项目后,我的一些测试开始失败。我做了一些挖掘,结果是Object.Equals对来自不同程序集的代码返回的匿名类型的行为不同-我不确定为什么,或者我可以做些什么来解决它。在https://github.com/dylanbeattie/AnonymousTypeEquality有完整的重现代码但实际上破坏的部分在下面。此代码在测试项目中:[TestFixture]publicclassTests{[Test]publicvoidBothInline(){vara=new{

c# - Moq.Mock.Verify() 是否使用身份或.Equals() 比较参数?

像这样的命令varmockObj=newMock()varanotherObj=Utilities.DoStuff();//sometests...mockObj.Verify(foo=>foo.someMethod(anotherObj));Moq是使用身份比较还是使用.Equals()来确定someMethod()是否曾被anotherObj调用为范围?换句话说,我指示为foo.someMethod()的参数的对象是否必须与之前为验证调用的someMethod()完全相同的对象传递,还是只需要等于anotherObj? 最佳答案

c# - .NET 的 Equals 方法的真正含义是什么?

我们知道所有类型都从它们的基类Object继承Equals。根据微软文档:Equalsreturnstrueonlyiftheitemsbeingcomparedrefertothesameiteminmemory.所以我们使用Equals()来比较对象引用,而不是对象的状态。Typically,thismethodisoverriddentoreturntrueonlyiftheobjectsbeingcomparedhavethesameinternalstatevalues.我的问题:两个对象是否可以指向内存中的同一项但具有不同的状态?如果不是,为什么要覆盖Equals?感谢您提

c# - 如何在不破坏现有 Object.Equals() 的情况下仅检查两个对象的属性是否相等?

基本上,GethashCode是不同的,即使它们包含相同的属性值...那么为什么默认返回差异哈希码?publicclassUser{publicInt32Id{get;set;}publicStringUsername{get;set;}}Usera=newUser();a.Id=1;a.Username="Hello";Userb=newUser();b.Id=1;b.Username="Hello";Console.WriteLine("HashA:{0}|HashB:{1}",a.GetHashCode(),b.GetHashCode());//HashA:37121646|Ha

c# - 为什么类实例的私有(private)成员在 Equals() 方法体中可用?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Whyaremyprivatesaccessible?Whyareprivatefieldsprivatetothetype,nottheinstance?很可能我遗漏了一个明显的事实,但我真的看不出原因:当我覆盖Equals()方法并且当我将对象转换为我的类型时,我能够调用它的私有(private)成员没有任何问题!我正在初始化一个实例,我希望它的私有(private)成员不可访问。但是为什么被转换的对象在Equals()方法中向我开放它的私有(private)?查看下面示例代码中的Equals实现,看看我

c# - == 和 .Equals() 与接口(interface)和 LINQ 之间的区别

我最近收到“不支持接口(interface)成员的映射......”错误,我根据thisthread解决了这个问题.演示:publicinterfaceIMyInterface{stringvalueText{get;set;}}publicclassMyData:IMyInterface{intID{get;set;}stringvalueText{get;set;}}publicclassMyOtherData:IMyInterface{longID{get;set;}stringvalueText{get;set;}}和publicstaticIEnumerableGetByVa

c# - 为什么 Enumerable.Range 实现 IDisposable?

只是想知道为什么Enumerable.Range工具IDisposable.我明白为什么IEnumerator确实如此,但是IEnumerable不需要它。(我在玩我的.Memoise()实现时发现了这一点,它有类似的语句if(enumerableisIDisposable)((IDisposable)enumerable).Dispose();出于好奇,我在它的“sourcefinished”方法中放置了一个断点,并由测试触发。) 最佳答案 Enumerable.Range在其方法主体中使用yieldreturn。yieldret

c# - 实现地理坐标类 : equality comparison

我正在将CodePlex中的地理坐标类集成到我的个人“工具箱”库中。此类使用float存储纬度和经度的字段。自下课GeoCoordinate工具IEquatable,我习惯性地写了Equals像这样的方法:publicboolEquals(GeoCoordinateother){if(other==null){returnfalse;}returnthis.latitude==other.latitude&&this.longitude==other.longitude;}此时我停下来考虑我正在比较浮点变量是否相等,这通常是一个禁忌。我的思考过程大致如下:我只能想象设置Latitude