Static之静态构造器

 
  
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

// 静态构造器
// 1.只能有一个静态构造器
// 2.静态构造器上不允许使用public和private等修饰符
// 3.静态构造函数必须无参数
// 4.可以提供一个具有与静态构造器相同的原型的非静态构造器,先调用静态版本
// 5.在访问类的任何静态成员(函数或数据)之前执行静态构造器
namespace StaticConstructor
{
class SomeClass
{
public static int x;
public int y;
// 只能有一个静态构造器
// static public SomeClass(); // 语法错误:静态构造器上不允许使用public和private等修饰符
// static SomeClass(int i, int j); // 语法错误:静态构造函数必须无参数
static SomeClass()
{
x
= 1 ;
// this.y=2; // 语法错误:静态构造器不能访问实例成员(包括this指针)
Console.WriteLine( " SomeClass Initialized " );
}
// 与一般重载规则相反,可以提供一个具有与静态构造器相同的原型的非静态构造器
// 在创建类的第一个静态实实例之前将调用两个构造器,先调用静态版本
public SomeClass()
{
Console.WriteLine(
" Non-static ctor " );
}
// 在访问类的任何静态成员(函数或数据)之前执行静态构造器
public static void Foo()
{
Console.WriteLine(
" Foo " );
}

}
class Program
{
static void Main( string [] args)
{
SomeClass sc
= new SomeClass();
SomeClass.Foo();
Console.WriteLine(SomeClass.x);
Console.ReadKey();
}
}
}

运行结果截图:

r_13.jpg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值