use*_*341 2 c# constructor class-constants
为什么静态构造函数在引用另一个类中的const字符串时抛出异常.
class MyClass
{
static MyClass()
{
ExamineLog();
}
static ExamineLog()
{
FilePath = HttpContext.Current.Server.MapPath(Helper.LogConfiguration);
}
}
class Helper
{
public const string LogConfiguration= "\rootpath\counters.txt";
}
Run Code Online (Sandbox Code Playgroud)
抛出的异常是未将对象引用设置为对象的实例.堆栈跟踪指向尝试读取常量值的行.有什么想法吗?
思考:
HttpContext
可能是nullHttpContext.Current
可能是nullHttpContext.Current.Server
可能是null进一步思考:
Current
是类的静态属性HttpContext
,因此HttpContext
不是对象引用,也不能为null.如果你想简化你的调试,你可以改变这样的代码(我假设它ExamineLog
应该被声明为一个void方法):
static void ExamineLog()
{
var context = HttpContext.Current;
var server = context.Server;
FilePath = server.MapPath(Helper.LogConfiguration);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
898 次 |
最近记录: |