以下是一个示例实现,使用了简单的字符串比较和遍历,无需使用正则表达式:

public static bool CheckFuc(NtionType tionlype, string name, ref string Msg)
{
    // 检查长度是否超过20个字符
    if (name.Length > 20)
    {
        Msg = '名称长度不能超过20个字符';
        return false;
    }

    // 遍历每个字符检查是否符合命名规范
    foreach (char c in name)
    {
        if (!Char.IsLetterOrDigit(c) && c != '_')
        {
            Msg = '名称只能包含字母、数字、下划线';
            return false;
        }
    }

    // 检查名称是否与 NtionType 类型中的字段或方法名一致
    if (tionlype.GetType().GetFields().Any(f => f.Name == name) ||
        tionlype.GetType().GetMethods().Any(m => m.Name == name))
    {
        // 名称已经存在
        Msg = '名称已经存在';
        return false;
    }

    // 名称符合规范
    return true;
}

这个函数首先检查名称的长度是否超过20个字符,如果是则返回 false。然后遍历每个字符,检查是否包含非字母、数字和下划线的字符,如果是则返回 false。接下来,使用反射 API 检查名称是否与 NtionType 类型中已有的字段和方法名重复,如果是则返回 false。最后,如果名称符合所有规范,则返回 true。

C# 检查字段名、方法名命名规范:长度限制、字符验证、重复性检测

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

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