C#的静态构造函数有些什么特点?
1个回答
展开全部
静态构造函数具有以下特点:
1、静态构造函数既没有访问修饰符,也没有参数。
2、在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化类。
3、无法直接调用静态构造函数。
4、在程序中,用户无法控制何时执行静态构造函数。
5、静态构造函数的典型用途是:当类使用日志文件时,将使用这种构造函数向日志文件中写入项。
6、静态构造函数在为非托管代码创建包装类时也很有用,此时该构造函数可以调用
LoadLibrary
方法。
7、如果静态构造函数引发异常,运行时将不会再次调用该构造函数,并且在程序运行所在的应用程序域的生存期内,类型将保持未初始化。代码示例:
namespace
Demo
{
class
UserPreferences
{
public
static
readonly
Color
BackColor;
//声明类的静态成员
static
UserPreferences()
//构造静态函数
{
DateTime
now
=
DateTime.Now;
if(now.DayOfWeek
==
DayOfWeek.Saturday
||
now.DayOfWeek
==
DayOfWeek.Sunday)
BackColor
=
Color.Green;
else
BackColor
=
Color.Red;
}
private
UserPreferences()
{
}
}
class
Program
{
static
void
Main(string[]
args)
{
Console.WriteLine("UserPreferences:BackColor
is:"
+
UserPreferences.BackColor.ToString());
}
}
}
1、静态构造函数既没有访问修饰符,也没有参数。
2、在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化类。
3、无法直接调用静态构造函数。
4、在程序中,用户无法控制何时执行静态构造函数。
5、静态构造函数的典型用途是:当类使用日志文件时,将使用这种构造函数向日志文件中写入项。
6、静态构造函数在为非托管代码创建包装类时也很有用,此时该构造函数可以调用
LoadLibrary
方法。
7、如果静态构造函数引发异常,运行时将不会再次调用该构造函数,并且在程序运行所在的应用程序域的生存期内,类型将保持未初始化。代码示例:
namespace
Demo
{
class
UserPreferences
{
public
static
readonly
Color
BackColor;
//声明类的静态成员
static
UserPreferences()
//构造静态函数
{
DateTime
now
=
DateTime.Now;
if(now.DayOfWeek
==
DayOfWeek.Saturday
||
now.DayOfWeek
==
DayOfWeek.Sunday)
BackColor
=
Color.Green;
else
BackColor
=
Color.Red;
}
private
UserPreferences()
{
}
}
class
Program
{
static
void
Main(string[]
args)
{
Console.WriteLine("UserPreferences:BackColor
is:"
+
UserPreferences.BackColor.ToString());
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询