【转】编写高质量代码改善C#程序的157个建议——建议106:为静态类添加静态构造函数
2021-04-22 23:29
标签:mod method except 标识符 初始化 stream 存在 type one 建议106:为静态类添加静态构造函数 静态类可以拥有构造方法,这就是静态构造方法。静态构造方法与实例构造方法比较有几个自己的特点: 使用静态构造方法的好处是,可以初始化静态成员并捕获在这过程中发生的异常。而使用静态成员初始化器则不能在类型内部捕获异常了。查看下面代码: 如果文件“c:\temp.txt”不存在,这段代码将会抛出一个TypeInitializationException。比较理想的做法是,在类型SampleClass的内部对fileStream进行初始化。提供静态构造器的SampleClass应该如下所示: 在上面的代码中,如果类型初始化不成功,会在类型的内部处理完毕,并不会将异常抛给调用者。因为有时候调用者甚至都不知道类型需要初始化什么内容,所以将初始化失败的异常处理交给上层是不合理的。 对静态引用类型的初始化应该使用静态构造方法。但是,如果一个静态类只有值类型的变量,则可以放宽这种限制。 转自:《编写高质量代码改善C#程序的157个建议》陆敏技 【转】编写高质量代码改善C#程序的157个建议——建议106:为静态类添加静态构造函数 标签:mod method except 标识符 初始化 stream 存在 type one 原文地址:http://www.cnblogs.com/farmer-y/p/8000268.html
static class SampleClass
{
private static FileStream fileStream = File.Open(@"c:\temp.txt",FileMode.Open);
public static void SampleMethod(){}
}
static void Main(string[] args)
{
SampleClass.SampleMethod();
Console.ReadKey();
}
static class SampleClass
{
private static FileStream fileStream;
static SampleClass()
{
try
{
fileStream = File.Open(@"c:\temp.txt", FileMode.Open);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
//异常处理
}
}
public static void SampleMethod() { }
}
文章标题:【转】编写高质量代码改善C#程序的157个建议——建议106:为静态类添加静态构造函数
文章链接:http://soscw.com/index.php/essay/78297.html