Либо вы делаете это, записывая код для проверки каждого свойства вручную (лучший вариант), либо используете отражение (подробнее здесь )
Employee emp = new Employee();
var props = emp.GetType().GetProperties())
foreach(var prop in props)
{
if(prop.GetValue(foo, null) != null) return false;
}
return true;
пример из здесь
Обратите внимание, что int не может быть нулевым! и его значение по умолчанию будет равно 0. Таким образом, лучше проверить prop == default(int)
, чем == null
вариант 3
Другим вариантом является реализация INotifyPropertyChanged .
При изменении установите значение логического поля isDirty
равным true, а затем вам нужно только проверить, является ли это значение истинным, чтобы узнать, было ли установлено какое-либо свойство (даже если свойство было установлено с нулем.
Предупреждение: этот метод, каждое свойство может все еще быть нулевым, но только проверяет, был ли вызван метод установки (изменение значения).