struct 构造函数

声明一个变量,如果没有赋值就使用(编译器会给其一个对应类型的默认值,但这不是赋值),那么就会出错,通常情况下编译器可以帮助发现问题(使用未赋值的变量编译通不过)。构造函数是用来初始化类、结构成员变量的。除了要初始化声明的成员变量,还需要考虑初始化的时机。如下面这个:

public struct MyDataCode
{
string m_name;
int m_age;

public MyData(string name ,int age,bool flag)
    {
if (flag)
        {
proccess();
}
m_name = string.Empty;
m_age = 0;
}

void proccess()
    {
m_age+= 1;
}

// code ecli.
}

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

public struct MyData
{
string m_name;
int m_age;

public MyData(string name ,int age,bool flag)
{
m_name = string.Empty;
m_age = 0;

if (flag)
{
proccess();
}

}

void proccess()
{
m_age+= 1;
}
// code ecli.

}

举这个例子只是为了说明在初始成员变量的时候要考虑时机。struct声明的时候是不可以进行赋值操作的,在类中可以。所有的成员变量未被赋值之前,操作成员函数也就不允许。


posted on 2012-03-06 17:05  s7vens  阅读(361)  评论(0编辑  收藏  举报