C# 构造函数简析

举报
陈言必行 发表于 2021/08/14 00:15:44 2021/08/14
【摘要】 构造函数: 每当创建类或结构时,将会调用其构造函数。类或结构可能具有采用不同参数的多个构造函数。 使用构造函数,程序员能够设置默认值、限制实例化,并编写灵活易读的代码。 实例构造函数: 1、构造函数的名字与类名相同。 2、使用 new 表达式创建类的对象或者结构时,会调用其构造函数。并且通常初始化新对象的数据成员。 3、类会有默认的构...

构造函数:

每当创建结构时,将会调用其构造函数。类或结构可能具有采用不同参数的多个构造函数。 使用构造函数,程序员能够设置默认值、限制实例化,并编写灵活易读的代码。


实例构造函数:

1、构造函数的名字与类名相同。

2、使用 new 表达式创建类的对象或者结构时,会调用其构造函数。并且通常初始化新对象的数据成员。

3、类会有默认的构造函数(静态类没有),并使用默认值来初始化对象字段

4、构造函数可以有参数,可以以多态的形式存在多个构造函数


静态构造函数:

类或结构也可以具有静态构造函数,该静态构造函数初始化类型的静态成员。静态构造函数是无参数构造函数。如果未提供静态构造函数来初始化静态字段,C# 编译器将提供默认静态构造函数,该静态构造函数会将静态字段初始化为其默认值。

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

私有构造函数:

私有化构造函数,是为了保护类不被实例化,保护类中除静态成员(想被外界访问的)外的成员变量, 属性,方法等不会被访问。


  
  1. using System;
  2. //using static System.Math; //double aa = PI;
  3. namespace MianshiText
  4. {
  5. class Test{
  6. public static string name = "moren";
  7. public int age = 0;
  8. //私有化外界访问不到
  9. private Test()
  10. {
  11. }
  12. //每次实例时被调用
  13. public Test(string name,int age)
  14. {
  15. Test.name = name;
  16. this.age = age;
  17. }
  18. //是类的构造函数,没有参数,只调用一次
  19. static Test()
  20. {
  21. name = "czhenya";
  22. //age = 15; //只能修改静态变量
  23. }
  24. }
  25. class Program
  26. {
  27. static void Main(string[] args)
  28. {
  29. //默认执行静态构造函数,输出值为:czhenya
  30. Console.WriteLine( Test.name);
  31. //无参构造函数已被私有化,编译出错
  32. //Test t2 = new Test();
  33. //调用带参构造函数
  34. Test t1 = new Test("chen", 15);
  35. Console.WriteLine("姓名:{0},年龄:{1}", Test.name, t1.age);
  36. Test.name = "ya";
  37. t1.age = 20;
  38. Console.WriteLine("姓名:{0},年龄:{1}", Test.name, t1.age);
  39. Console.ReadKey();
  40. }
  41. }
  42. }


文章来源: czhenya.blog.csdn.net,作者:陈言必行,版权归原作者所有,如需转载,请联系作者。

原文链接:czhenya.blog.csdn.net/article/details/76092128

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。