在初学C#的时候,有三个概念可能会容易搞混——结构类型、结构函数、构造函数。
结构类型是由几个数据组成的数据结构,这些数据可能有不同的的类型。结构就是把这些不同类型的数据组合在一起,形成由用户自定义变量类型的数据,以方便用户使用。结构使用struct关键字来定义,语法如下:
struct <typeName>
{
<memberDeclarations>
}
<memberDeclarations>部分包含变量的定义(称为结构的数据成员),与声明一个普通变量的格式一样。如果要让外界访问结构的数据成员,可以在声明变量成员的时候加上访问修饰符public。如下:
structStudent
{
publicstring name;
publicint age;
}
定义好结构之后,我们就可以定义新类型的变量,来使用该结构,并且使用“.”字符访问这个组合变量中的数据成员。
Studentstu;
stu.name= “Jim”;
stu.age= 20;
结构函数是在结构类型的基础上,让结构发挥更多的作用,而不仅仅只是在一个地方存储多个数据元素。结构可以同时包含有函数和数据,这就是结构函数。
structStudent
{
publicstring name;
publicint age;
publicstring SayHi()
{
Return“Hello,Everyone!My Name is ”+name+”, I’m ”+age;
}
}
在外面,我们就可以通过stu.SayHi()的方法来调用这个函数。我们把把合适的函数添加到结构类型中,就可以集中处理常见的任务,用于简化其它操作的过程。在上面的Student结构中,name和age可以被看作全局成员,SayHi()函数可以直接访问它们。结构是值类型。
构造函数与结构又是截然不同的两个概念。当我们在定义一个类时,如果没有显式的指定,系统会给这个类赋予一个默认的无参构造函数,通过这个构造函数,我们就可以新建这个类的对象。这个构造函数与包含它的类同名,有访问修饰符,但没有void。
classStudent
{
publicStudent()
{
}
}
当访问修饰符为public时,允许在类的外面使用new关键字来创建该类的实例。当访问修饰符为private时,不可以使用new关键字来创建对象,这种用法一般用于返回该类的唯一实例。我们还可以给类添加非默认的构造函数,这些构造函数都需要参数。
publicclass Student
{
publicstring _name;
publicint _age;
publicStudent()
{
}
publicStudent(string name,int age)
{
_name= name;
_age= age;
}
}