using System; #region /* /// <summary> /// 类定义 /// </summary> class Person { //成员变量 int name; int height; //成员方法 void eat() { } } class Test { static void Main() { Person baby = new Person(); //对象 baby.name = Person YaoMin = new Person(); //对象 } } */ #endregion class 在C#编程中,初始化成员变量是创建对象时的一个重要步骤。成员变量是类的属性,它们存储数据并反映了对象的状态。构造器是用于初始化新创建对象状态的特殊方法。本话题将深入探讨如何在无参构造器中初始化成员变量。 1. **直接在变量声明时初始化** 在类中,成员变量可以直接被赋值,如`class A`中的`public int i = 100;`和`public string s = "stone";`。这种初始化方式使得每个实例在创建时都会自动执行这些初始值设置。这种方式适用于所有构造函数,无论是否有参数,因为编译器会为每个构造函数添加相应的初始化代码。 2. **在无参构造器中初始化** 当成员变量的初始值依赖于类的行为而不是固定的值时,可以在无参构造器中进行初始化。例如: ```csharp class Person { int name; int height; public Person() { Console.WriteLine("constructor"); name = 0; // 初始化name height = 0; // 初始化height } } ``` 这种方式确保了每次创建`Person`对象时,`name`和`height`都会被正确地初始化。 3. **通过有参构造器调用无参构造器** 如果有多个构造器,可以通过在有参构造器中调用无参构造器来避免重复初始化。例如,`class A`的有参构造器如`public A(int i) : this()`和`public A(string s) : this()`。`this()`关键字调用了无参构造器,确保了即使通过有参数的构造器创建对象,成员变量也会先由无参构造器初始化,然后在有参构造器中进行进一步的设置。 4. **多参数构造器** `class A`还展示了如何处理多个参数的情况,例如`public A(int i, string s) : this()`。这种情况下,构造器链允许我们根据传入的参数来设置成员变量,同时保持代码的清晰和简洁。 5. **示例运行分析** 在`Test`类的`Main`方法中,我们创建了不同类型的`A`对象,并观察了构造器的执行顺序和成员变量的初始化结果。每个构造器的输出证实了成员变量在相应构造器的作用下得到了正确的初始化。 总结来说,C#提供多种方式来初始化成员变量,可以根据需要选择最合适的策略。直接初始化、在无参构造器中初始化,或者通过有参构造器调用无参构造器,都是保证对象状态正确初始化的有效手段。理解并熟练掌握这些技巧对于编写健壮、可维护的C#代码至关重要。
































- 粉丝: 7
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- python 练习题,python题目
- 【嵌入式系统】基于STM32单片机的按键控制LED闪烁程序:初学者快速上手指南
- 首个实现全参数训练的知识产权大模型 -MoZi(墨子)
- ADO.NET专业项目实战指南
- 一项基于大模型的App隐私开关探测技术
- 支持多情感男女声,实时离线文本合成 TTS,可单模变声、调速率音量及自定义语音模型
- 首个全参数训练的知识产权大模型 MoZi (墨子)
- 基于 Next.js 的大模型小说创作工具 AI-Novel
- mmexport1755910142185.mp4
- 基于 Next.js 的大模型小说创作工具 AI-Novel
- 【移动应用开发】多框架教程汇总:智慧林业IoT、Rhodes、Kivy、Android、Ionic4开发资源与入门指导
- 冰心3.9多开(推荐).apk
- 唯雨超自然-1.6.apk
- 大数据信息的处理模式与模型构建
- 基于 TinyVue 的前后端分离后台管理系统,支持在线配置菜单、路由、国际化及页签模式、多级菜单,模板丰富、构建工具多样,功能强大且开箱即用!
- CST联合Matlab仿真程序



评论0