4.7 结构类型

“结构”是一种构造类型,它是由若干“成员”组成的。每一个成员可以是一个基本数据类型或者又是一个构造类型。结构即是一种“构造”而成的数据类型,结构中可以包含构造函数、常量、字段、属性、方法、运算符、事件和嵌套类型等。

在结构声明中,除非字段被声明为const或static,否则无法初始化。结构类型永远不是抽象的,并且始终是隐式密封的,因此在结构声明中不允许使用abstract和sealed修饰符。

在C#中使用struct关键字来声明结构,其语法格式如下:

    访问修饰符 struct 结构名
    {
    //成员表列
    };

下面的例子演示了结构类型的使用。

例4-9:结构类型的使用(ConsoleStruct)

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ConsoleStruct
    {
        class Program
        {
            static void Main(string[] args)
            {
                SquareStruct ss;
                ss.radius = 2;
                Console.WriteLine("半径为{0}的圆的面积为:{1}\n", ss.radius, 
                ss.Square());
    
                ss = new SquareStruct(5);
                Console.WriteLine("半径为{0}的圆的面积为:{1}", ss.radius, 
                ss.Square());
    
                Console.ReadLine();
            }
    
            public struct SquareStruct
            {
                public const double PI = 3.1415926;
                public double radius;
    
                public double Square()
                {
                    return PI * radius * radius;
                }
    
                public SquareStruct(double r)
                {
                    radius = r;
                }
            }
        }
    } 

运行结果如图4-9所示。

图4-9 结构类型的使用