Рассмотрим этот кусок кода:В библиотеке Enterprise, как абстрактное Validator.cs имеет определение метода?
public abstract class Validator
{
protected Validator()
{
}
protected abstract void ValidateCore(object instance, string value, IList<ValidationResult> results);
public void Validate(object instance, string value, IList<ValidationResult> results)
{
if (null == instance) throw new ArgumentNullException("instance");
if (null == results) throw new ArgumentNullException("results");
ValidateCore(instance, value, results);
}
}
Посмотрите на перегрузку Validate()
, как может иметь абстрактный класс определения, как это?
Да - абстрактные методы - это не интерфейсы. –
Фактически абстрактный класс не может иметь абстрактного метода (вы можете проверить его), хотя это не обычный способ определения абстрактных классов. –
Хмм ... интересно, спасибо! – Soham