我有一个棘手的问题困扰了我一段时间。我有以下代码声明...
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/