using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace BPA.UIControl.Commons { /// /// 参数验证 /// public sealed class ValidateArgument { /// /// 非 null /// /// 对象 /// 参数名称 /// public static void NotNull(object obj, string parameterName) { if (obj == null) { throw new ArgumentNullException(parameterName); } } /// /// 非 null 或空 /// /// 字符串值 /// 参数名称 /// public static void NotNullOrEmpty(string parameterValue, string parameterName) { if (string.IsNullOrEmpty(parameterValue)) { throw new ArgumentException(parameterName); } } /// /// 非 Null 或空类型转换 /// /// 类型 /// 参数值 /// 参数名称 /// /// public static T NotNullOrEmptyCast(object parameterValue, string parameterName) { ValidateArgument.NotNull(parameterValue, parameterName); if (parameterValue is T) { return (T)((object)parameterValue); } throw new ArgumentException(parameterName); } /// /// 类型转换 /// /// 类型 /// 参数值 /// 参数名称 /// /// public static T Cast(object parameterValue, string parameterName) { if (parameterValue == null || parameterValue is T) { return (T)((object)parameterValue); } throw new ArgumentException(parameterName); } /// /// 是否在范围内 /// /// 检查表达式 /// 参数名称 /// public static void Range(bool checkedExpression, string parameterName) { if (!checkedExpression) { throw new ArgumentOutOfRangeException(parameterName); } } /// /// 是否在范围内 /// /// 检查表达式 /// 参数名称 /// 错误信息 /// public static void Range(bool checkedExpression, string parameterName, string message) { if (!checkedExpression) { throw new ArgumentOutOfRangeException(parameterName, message); } } } }