C#中类与结构的区别

     在C#中,类是功能最为强大的数据类型,类定义了数据类型的数据和行为。一下示例代码是在创建Person类中使用void定义一个无返回值类型的CheckName方法:

      public class Person

      {

            public  string  name;  //定义类成员

            public  void  CheckName()

            {

                 if(string.IsNullOrEmpty(name))

                 {

                      name = "姓名未登记";

                 }

             }

     }

     在实际生活中我们经常把一组相关的信息放在一起。把一系列相关的变量组织成为一个单一实体的过程,我们称为生成结构的过程。这个单一实体的类型就叫做结构类型,每一个变量称为结构成员。我们使用的简单类型(int、double 和 bool)实际上都是结构类型,在C#中,结构类型采用关键字“struct”来声明。示例代码如下:

     struct  Employee

    {

        public  string  empName;   //员工姓名

        public  uint age;    //年龄

        public  string  department;   //部门

        public  uint  score;    //积分

     }

     结构与类有一下3个方面的区别:

  1. 结构是值类型,而类是引用类型
  2. 结构不支持继承,而类完全可以被其它类继承,其自身也能被继承。
  3. 结构不能定义默认的构造函数,也没有析构函数,并且不能有abstract、virtual 或 protected修饰符,而类有默认的构造函数和析构函数。

     结构与类虽然初始化都能使用new关键字,但它们之间的区别很大,主要体现在3个方面:结构是值类型,而类是引用类型;结构不能被继承而类可以;结构与类的内部结构不同。

posted @ 2023-05-10 12:07  夜店耍流氓  阅读(20)  评论(0编辑  收藏  举报