预编译指令和对象初始化器

1、预编译指令的概念

    预编译指令也称预处理指令,在程序编译前执行.

区域指令是预编译指令中的一种。

    #region
    ......
    #endregion

2、对象初始化器

     当类中存在很多字段时,其构造函数的重载形式有很多,将他们一一实现的话工作量很大。这是使用对象初始化器,可以直接对类中的字段进行赋值而无需实现对应的构造方法。例如:

                                                                                                                                                           

    class Person
    {
        public String name;
        public int age;
        public String address;

        public override String ToString()
        {
            return $"name = {name},age = {age}, address = {address}";
        }
    }
        static void Main(string[] args)
        {
            
            Person p1 = new Person() { };
            Person p2 = new Person() { name = "Wyhon" };
            Person p3 = new Person() { age = 20, address = "FuJian"};

            Console.WriteLine(p1.ToString());
            Console.WriteLine(p2.ToString());
            Console.WriteLine(p3.ToString());
        }
运行结果:
 

可以看出,没有被手动赋值的字段,编译器为其赋予默认值。

但有一点需要注意:使用对象初始化器时,类中必须要定义默认构造函数,自己定义或者编译器自动生成都OK。否则会报错。


### 预编译指令的定义及用法 #### 什么是预编译指令预编译指令是指在程序源文件被实际编译之前由预处理器执行的一组命令。这些指令通常以 `#` 号开头,用于指导编译器如何处理代码中的特定部分[^2]。 #### 预编译指令的主要功能 预编译指令的功能主要包括但不限于以下几个方面: - 文件包含 (`#include`):通过该指令可以将其他头文件的内容嵌入到当前源文件中,从而实现模块化开发。 - 条件编译 (`#if`, `#ifdef`, `#ifndef`, `#else`, `#endif`):允许程序员根据条件决定哪些代码会被编译,这有助于创建适用于不同平台或配置的代码版本。 - 宏定义 (`#define`, `#undef`):用来定义常量或者简单的函数替代,以及取消已有的宏定义[^3]。 #### 使用示例 以下是几个常见的预编译指令及其用法: ##### 文件包含 (#include) ```c #include <stdio.h> // 包含标准输入输出库 #include "myheader.h" // 包含自定义头文件 ``` ##### 条件编译 (#ifdef, #ifndef, etc.) ```c #ifdef DEBUG printf("Debug mode is on.\n"); #endif #ifndef RELEASE #define RELEASE 1 #endif ``` ##### 宏定义 (#define, #undef) ```c #define PI 3.1415926 // 定义一个名为PI的宏 #undef PI // 删除先前定义的PI宏 ``` 以上例子展示了如何利用预编译指令来控制程序的行为结构,使得代码更加灵活且易于维护[^1]。 #### 构造器与预编译指令的区别 需要注意的是,虽然构造器也是编程中的重要概念,但它属于类成员的一种特殊方法,主要用于对象初始化,其声明方式如下所示,而并非预编译阶段的操作[^4]: ```cpp class MyClass { public: MyClass(int value); // 声明构造器 }; MyClass::MyClass(int value) { /* 实现 */ } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值