在c#中如何使用结构体Struct 一、结构体概述 首先说明,结构体是值类型。 结构是使用 struct 关键字定义的,结构如下: struct 结构名 { } 结构具有以下特点: 结构是值类型,而类是引用类型。与类不同,结构的实例化可以不使用 new 运算符。结构可以声明构造函数,但它们必须带参数。一个结构不能从另一个结构或类继承,而且不能作为一个类的基。所有结构都直接继承自 System.ValueType,后者继承自 System.Object。结构可以实现接口。结构在定义变量时不能给定初始值。 如果要在结构中使用构造函数则必须给所有的变量赋值(在构造函数中直接给变量赋值而不是给变量的属性赋值,因为在未赋值之前属性是没有值的所以不能直接给属性) 所有的结构都隐式继承自ValueType类,不需要显示指定;结构的继承列表中只允许有接口。结构的继承是三层的:object >> valuetype >> "结构" 。 二、c#结构体Struct的简单例子 public static void Main(string[] args) { DataInfo info; info.i = 5; Console.WriteLine(info.i); Console.ReadLine(); } public struct DataInfo { public int i; } 稍微复杂的例子如下: struct Employeestruct { private string name; public string Name { get { return name; } set { name = value; } } private int age; public int Age { get { return age; } set { age = value; } } private int gongzhi; public int Gongzhi { get { return gongzhi; } //set { gongzhi = value; } } //有参数构造函数 public Employeestruct(string _name, int _age, int _gongzhi) { //如果要在结构中使用构造函数则必须给所有的变量赋值(在构造函数中赋值) this.name = _name; this.age = _age; this.gongzhi = _gongzhi; } } //使用结构 class Program { static void Main(string[] args) { ////实例化Employeestruct结构 //Employeestruct empstruct = new Employeestruct("Steven", 22, 10000); //Console.WriteLine("姓名:{0}\n年龄:{1}\n工资:{2:C2}", empstruct.Name, empstruct.Age, empstruct.Gongzhi); Console.Read(); } }
|