结构体与类比较相似,由于它是值类型,在使用时会比使用类存取的速度更快,但灵活性方面没有类好。
结构体从字面上来理解是指定义一种结构,实际上结构体是一种与类的定义非常相似的数据类型,但它是值类型。
结构体的定义位置与枚举类型一样,都是在类中定义或者在命名空间下定义,而不能将其定义到方法中。
在结构体中能定义字段、属性、方法等成员。定义的语法形式如下。
	访问修饰符  struct  结构体名称
	{
	    //结构体成员
	}
其中:
通常使用 public 或者省略不写,如果省略不写,代表使用 private 来修饰。
如果结构体中的内容要被其他类中的成员访问,需要将其访问修饰符设置为 public。
命名规则通常和变量的命名规则相同,即从第二个单词开始每个单词的首字母大写。
包括字段、属性、方法以及后面要介绍的事件等。
在结构体中也能编写构造器,但必须带参数,并且必须为结构体中的字段赋初值。
在调用结构体的成员时,能使用不带参数的构造器,与创建类的对象时类似。
【实例 1】定义名为 student 的结构体,在该结构体中定义学生姓名 (name) 和年龄 (age) 的字段,并分别为字段生成属性,要求年龄必须大于 0。
根据题目要求,将结构体 student 定义到 Program 类中,并在 Main 方法中调用该结构体,代码如下。
class Program
{
    static void Main(string[] args)
    {
        student stu = new student();
        stu.Name = "张三";
        stu.Age = -100;
        Console.WriteLine("学生的信息为:");
        Console.WriteLine(stu.Name + ":" + stu.Age);
    }
    struct student
    {
        private string name;
        private int age;
        public string Name
        {
            get
            {
                return name;
            }
            set
            {
                name = value;
            }
        }
        public int Age
        {
            get
            {
                return age;
            }
            set
            {
                if (value < 0)
                {
                    value = 0;
                }
                else
                {
                    age = value;
                }
            }
        }
    }
}
执行上面的代码,效果如下图所示。