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