可以使用以下代码:

public bool IsLegalValue(object value, ref object defaultValue)
{
    if (value == null)
    {
        defaultValue = default(ushort);
        return false;
    }
    else if (value is ushort)
    {
        defaultValue = value;
        return true;
    }
    else
    {
        string strValue = value.ToString();
        ushort ushortValue;
        if (ushort.TryParse(strValue, out ushortValue))
        {
            defaultValue = ushortValue;
            return true;
        }
        else
        {
            defaultValue = default(ushort);
            return false;
        }
    }
}

public bool IsUShort(string strValue)
{
    string pattern = @"^\d+$";
    return Regex.IsMatch(strValue, pattern) && ushort.TryParse(strValue, out ushort result);
}

其中,IsLegalValue方法用于判断是否为ushort类型,如果是则返回true,并将defaultValue设置为传入的value值;如果不是,则尝试将value转换为ushort类型,如果成功则返回true,并将defaultValue设置为转换后的ushort值,否则返回false,并将defaultValue设置为ushort类型的默认值。

IsUShort方法用于判断一个字符串是否为ushort类型,使用正则表达式判断是否为数字,然后使用ushort.TryParse方法尝试将字符串转换为ushort类型。如果能成功转换则返回true,否则返回false

使用public bool IsLegalValueobject value ref object defaultValue方法判断是否为ushort类型使用正则表达式

原文地址: https://www.cveoy.top/t/topic/cyhm 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录