2016-06-05 2 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

Um, перегрузить оператор '' ==? Вы можете сделать эту реализацию так, как хотите ... См. 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")); 
Смежные вопросы