声明一个变量,如果没有赋值就使用(编译器会给其一个对应类型的默认值,但这不是赋值),那么就会出错,通常情况下编译器可以帮助发现问题(使用未赋值的变量编译通不过)。

   构造函数是用来初始化类、结构成员变量的。除了要初始化声明的成员变量,还需要考虑初始化的时机。如下面这个:

    1     public struct MyDataCode

 2     {
 3         string m_name;
 4         int m_age;
 5 
 6         public MyData(string name ,int age,bool flag) { 
 7             if (flag) {
 8                 proccess();
 9             }
10             m_name = string.Empty;
11             m_age = 0;
12         }
13 
14         void proccess() {
15                 m_age+= 1;  
16         }
17         // code eclistruct构造函数struct构造函数.
18         // struct构造函数struct构造函数struct构造函数
19     }

   这个是编译通不过的。需要将所有的成员变量初始化放在最前面。这么更改就可以了:

 1     public struct MyData
 2     {
 3         string m_name;
 4         int m_age;
 5 
 6         public MyData(string name ,int age,bool flag) { 
 7              m_name = string.Empty;
 8              m_age = 0;
 9              if (flag) {
10                 proccess();
11              }
12            
13         }
14 
15         void proccess() {
16                 m_age+= 1;  
17         }
18         // code eclistruct构造函数struct构造函数.
19         // struct构造函数struct构造函数struct构造函数
20     }                                                                                                               举这个例子只是为了说明在初始成员变量的时候要考虑时机。struct声明的时候是不可以进行赋值操作的,在类中可以。所有的成员变量未被赋值之前,操作成员函数也就不允许。

 

相关文章:

  • 2021-08-15
  • 2022-12-23
  • 2022-12-23
  • 2021-08-03
  • 2021-09-30
  • 2021-06-09
  • 2022-12-23
  • 2021-06-11
猜你喜欢
  • 2021-05-22
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-04
  • 2021-08-03
相关资源
相似解决方案