C#之构造函数

发表于:2011-12-27 10:18

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:佳园    来源:51Testing软件测试网采编

  若是只执行有参构造函数呢?

  public class Test
    {
        
int i;
        
private  Test()
        {
            i 
= 1;
            Console.WriteLine(
"I am Test 默认构造函数 i={0}", i);
        }
        
public Test(int i)
        {
            Console.WriteLine(
"I am Test 有参构造函数 i={0}", i);
        }
    }
    
public class ProgramTest
    {
        
static void Main(string[] args)
        {
            Test t 
= new Test(2);
            Console.Read();
        }
    }

结果:I am Test 有参构造函数 i=2

  3、静态构造函数

  静态构造函数用来初始化静态变量,这个构造函数是属于类的,而不是属于哪个实例的。

  就是说这个构造函数只会被执行一次。也就是在创建第一个实例或引用任何静态成员之前,由.NET自动调用。

 public class Test
    {
        
static int i;
        
static  Test()
        {
            i 
= 1;
            Console.WriteLine(
"I am Test 默认构造函数 i={0}", i);
        }
    }
    
public class ProgramTest
    {
        
static void Main(string[] args)
        {
            Test t1 
= new Test();
            Console.Read();
        }
    }

结果为:I am Test 默认构造函数 i=1

  静态函数的特点:

  1、静态构造函数既没有访问修饰符,也没有参数。

  2、在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化类,也就是无法直接调用静态函数,也无法控制什么时候执行静态函数。

  3、一个类只能有一个静态构造函数,最多只能运行一次。

  4、静态函数不可以被继承。

  5、如果没有静态函数,而类中的静态成员有初始值,那么编译器会自动生成默认的静态构造函数。

  如果静态默认构造函数和公有默认构造函数同时存在,会怎么样呢?

43/4<1234>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号