C#结构类型与创建结构变量

结构类型   

结构类型适用于早应用程序中对数学、几何以及“原子”实体模型。结构是用户自定义的类型,然而,结构不只是一组名称值对。结构可以包含许多数据字段和操作这些字段的成员类型。定义和使用结构的过程很简单,但是其中的一些细节很重要。在对数据结构进行分析的同时。我们要先建立一个名为FunWithStructures的项目。在C#中,使用struct关键字来创建结构。定义一个新的Point,它定义了两个int类型的成员变量。下面是实现的代码:

  struct Point {

            //结构的字段

            public int X;

            public int Y;

            //将(X,Y)坐标增加1

            public void Increment() {

                X++;Y++;

            }

            //将(X,Y)坐标减去1

            public void Decrement(){

                X--;Y--;

            }

            //显示当前坐标

            public void Display()  {

                Console.WriteLine("X={0},Y={1}", X, Y);

            }

        }

在这里使用public关键字定义两个整形数据类型(X和Y),这个关键字是访问控制修饰符。使用public关键字来声明数据可以确保调用能直接获取某个Point变量的数据。用Main()方法测试一下Point类型:

static void Main(string[] agrs) {

            Console.WriteLine("sdfdsfdrfse");

            //创建初始Point

            Point myPoint;

            myPoint.X = 349;

            myPoint.Y = 46;

            myPoint.Display();

            //调整X和Y值

            myPoint.Increment();

            myPoint.Display();

            Console.ReadLine();

        }

创建结构变量

创建结构变量的方式有好几种。在这里,我们没有必要创建太多,我们只是创建了一个Point变量,并在调用其成员之前为每一个公共字段数据赋值。如果在使用结构之前不为每一个公共字段数据赋值,则会收到一个编译错误:

            //错误!没有为Y赋值

            Point p1;

            p1.X = 10;

        p1.Display();

        //正确!在使用前两个字段都赋值了

            Point p2;

            p2.X = 10;

            p2.Y = 10;

        p2.Display();

另外一种可行的方法是,使用C#的new关键字来创建结构变量,它会调用结构默认的构造函数。根据定义,默认的构造函数不接受任何输入参数。调用结构默认构造函数的好处是,每一个字段数据都会被自动设置为默认值:

            //使用默认构造函数将所有字段设置为默认值

            Point p1 = new Point();

            //输出X=0,Y=0

        p1.Display();

还可以使用自定义构造函数设计结构。它允许我们在创建变量时指定字段数据的值,而不是逐个字段设置数据成员。为了实现这个结果,下面我们更新一下Point的结构;

        struct Point  {

            //结构的字段

            public int X;

            public int Y;

            //自定义的构造函数

            public Point(int XPos,int Ypos) {

                X = XPos;

                Y = Ypos;

            }

        }

这样,我们就可以创建Point变量了:

//调用自己的构造函数

        Point P2 = new Point(50, 60);

        //输出X=50,Y=60

        p2.display();

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值