Fork me on GitHub

C#学习笔记(7)结构

7.1结构体的感念。

结构是程序员定义的数据类型,与类非常类似。它们有数据成员和函数成员。虽然与类相似,但是结构有许多重要的区别。最重要的区别是:

(1)类是引用类型,而结构是值类型;

(2)结构是隐式密封的,这意味着不能从它们派生其他结构。

声明结构的语法与声明类相似。

关键字

struct  StructName

{

  MemberDeclarations;

}

代码如下:

using System;
class Program
{
    struct Point
    {
        public int x;
        public int y;
    }
    static void Main()
    {
        Point node;
        node.x = 1; node.y = 1;
        Console.WriteLine($"frist point:({node.x},{node.y})");
    }
}

7.2结构构造函数与析构函数

跟类的构造函数基本一致,但要注意要调用构造函数则必须要使用new运算符

直接上代码:

using System;
class Program
{
    struct Point
    {
        public int x;
        public int y;

        public Point(int _x = 0 ,int _y = 0)
        {
            x = _x;
            y = _y;
        }
    }
    static void Main()
    {
        Point node1;
        Point node2 = new Point();
        
        node1.x = 1; node1.y = 1;
        Console.WriteLine($"frist point:({node1.x},{node1.y})");
        Console.WriteLine($"second point:({node2.x},{node2.y})");
    }
}

运行结果:

 

 

7.3属性与字段初始化语句

在声明结构体时,不允许使用实例属性和字段初始化语句,如下所示。
struct Simple
{

     public int x=40;//编译错误
  public int y=10;//编译错误
  public int prop1{get;set;}=5;//编译错误

}

但是,结构体的静态属性和静态字段都可以在声明结构体时进行初始化,即使结构体本身不是静态的.

posted @ 2022-07-05 11:08  衔清风与共  阅读(107)  评论(0)    收藏  举报