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);
}
}
}
}