2016-06-05 3 views
0

클래스 멤버 (일부 멤버는 아님)와 미리 정의 된 개체를 비교하는 가장 좋은 방법은 무엇인지 알고 싶습니다.C# 클래스 멤버를 미리 정의 된 클래스/변수 형식과 비교

그래서 예 그래서

public class myClass 
{ 
    int A { get; set; } 
    int B { get; set; } 
    int C { get; set; } 
    int D { get; set; } 
} 

위해 그처럼 사용할 수 있습니다 :

myClass testClass = new myClass(); 
    testClass.A = 1; 
    testClass.B = 2; 
    testClass.C = 3; 

    testClass == predefinedObject -> true when A = 1, B = 2, C = 3; 
    or 
    testClass == predefinedObject2 -> true when A = 4, B = 5, C = 6; 
    etc 

그것은 아마도 "=="연산자 또는 무언가를 사용하여이 형식으로되어 있어야합니다 것을 명심하시기 바랍니다 그 스타일에 가깝습니다.

+0

음이의'== '연산자를 오버로드? 이 구현을 원하는대로 수행 할 수 있습니다. https://msdn.microsoft.com/en-us/library/8edha89s.aspx를 참조하십시오. –

답변

1

저는 fluentassertions을 사용합니다. 아주 멋집니다. 다음 코드이 가능합니다 :

orderDto.ShouldBeEquivalentTo(order, options => 
options.ExcludingMissingMembers()); 

orderDto.ShouldBeEquivalentTo(order, options => 
options.Excluding(o => o.Customer.Name)); 

orderDto.ShouldBeEquivalentTo(order, options => options 
.Excluding(ctx => ctx.SelectedMemberPath == "Level.Level.Text")); 

또는

orderDto.ShouldBeEquivalentTo(order, options => options 
.Including(o => o.OrderNumber) 
.Including(pi => pi.PropertyPath.EndsWidth("Date"));