我无法真正理解这个概念.
假设我有这个界面:
public interface IValidate
{
Dictionary<eValidationErrors, List<string>> ValidationMessages { get; }
}
Run Code Online (Sandbox Code Playgroud)
当我说:
var Validator = control as IValidate;
Validator.ValidationMessages.Add(key,list);
Run Code Online (Sandbox Code Playgroud)
什么是验证者?为什么我可以这样使用界面?
谢谢
Validator是实现IValidate接口的类型的实例(如果control实例未实现IValidate接口,则为null ).
如果您对某个实例的实际或精确实现不感兴趣,但是如果您想使用该界面提供的功能,那么这样做是有帮助的.
想想.NET框架本身的一些方法,它们接受一个接口类型的参数.该方法对类型本身不感兴趣; 它只需要确保传递的参数具有由指定接口声明的某些方法/属性/ etc ....