带有枚举的 C# 静态类

标签 c# enums static-class

我有一个棘手的问题困扰了我一段时间。我有以下代码声明...

namespace ESEGURCI.WEB.BusinessLogicLayer.Commons
{
    public static class ParameterUtilities
    {
        public enum ParameterEnum
        {
            MAX_LOGIN_ATTEMPTS,
            AUDIT_MODIFICATIONS
        }
    }
}

我这样调用代码“ParameterUtilities.ParameterEnum.MAX_LOGIN_ATTEMPTS” 问题是每次满月时我都会在这一行收到错误“对象引用未设置为对象的实例”。 .. 就像代码只能在 99.9% 的时间里工作一样......

我唯一想到的是,由于枚举是一种值类型,因此当调用静态类时枚举可能为 null ...但我找不到任何关于此行为的文档...

有人能告诉我为什么会这样吗?我知道我应该从静态类中删除枚举,并将枚举声明为独立的,但我想知道为什么会先发生这种情况......

谢谢, S

更新

好的,对于所有要求更多代码的人,以下是发生错误的完整函数......

    public static int GetPageSize(int companyId)
    {
        int pageSize = 0;

        // error happens bellow this line

        ESEGURCI.WEB.BusinessLogicLayer.Entities.Parameter parameter = ESEGURCI.WEB.BusinessLogicLayer.Entities.Parameter.GetParameter(ParameterUtilities.ParameterEnum.AUDIT_MODIFICATIONS.ToString(), companyId);

        // error happens above this line

        int.TryParse(parameter.Value, out pageSize);

        return pageSize;
    }

最佳答案

ParameterUtilities.ParameterEnum.MAX_LOGIN_ATTEMPTS 永远不会抛出空引用异常,无论月球看起来如何。该错误可能是由同一行上的其他指令触发的(分配给变量?)。

关于带有枚举的 C# 静态类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12262024/

相关文章:

c# - 附加类型 ""的实体失败,因为相同类型的另一个实体已具有相同的主键值

c# - Unity-Monodevelop变量同步问题

c# - 将枚举值绑定(bind)到标签 XAML

c# - 带有枚举的无效初始值设定项成员类

c#-4.0 - 如何在 C# 4.0 中创建静态类的属性

c# - 如何对邮件发送功能进行单元测试

exception - 为什么Haskell中的()是Enum类型却没有实现succ函数

java - 为什么不能在 Java 中将类声明为静态?

c# - Java/C# 静态类之间的主要区别是什么?

c# - 去掉 ASP.NET MVC 中的/Home 路径名