C#之结构和枚举

结构

结构是值类型数据结构,它使变量可以保存各种数据类型的相关数据,用struct关键字来创建结构。结构代表一个记录,比如你想记录一个人的各种属性:

  • 姓名
  • 性别
  • 年龄
  • 爱好

定义结构
struct语句来定义一个带有多个成员的新的数据类型,比如声明一个person结构:(如果该名字表示的是结构体里面的名字,这需要在名字前加’_’)

struct Person
{
    public string _name;    //表示姓名
    public char _gender;    //表示性别
    public int _age;        //表示年龄
    public string _hobby;   //表示爱好
}

下面程序将演示结构的使用:

using System;

namespace test
{
    //结构是值类型数据结构,它使单一变量可以存储各种数据类型的数据,用struct关键字来创建
    struct Person
    {
        public string _name;     //姓名
        public char _gender;     //性别
        public int _age;         //年龄
        public string _hobby;    //爱好
    }

    class Program
    {
        static void Main(string[] args)
        {
            Person aPerson;     //声明aPerson,类型为Person
            Person bPerson;     //声明bPerson,类型为Person

            /* aPerson 详述 */
            aPerson._name = "小红";
            aPerson._gender = '女';
            aPerson._age = 12;
            aPerson._hobby = "喜欢唱歌";

            /* bPerson 详述 */
            bPerson._name = "小明";
            bPerson._gender = '男';
            bPerson._age = 15;
            bPerson._hobby = "喜欢跳舞";

            /* 打印aPerson的信息 */
            Console.WriteLine("姓名:{0}\n性别:{1}\n年龄:{2}\n爱好:{3}",aPerson._name,aPerson._gender,aPerson._age,aPerson._hobby);
            Console.WriteLine();
            /* 打印bPerson的信息 */
            Console.WriteLine("姓名:{0}\n性别:{1}\n年龄:{2}\n爱好:{3}", bPerson._name, bPerson._gender, bPerson._age, bPerson._hobby);
        }
    }

打印结果如下:

姓名:小红
性别:女
年龄:12
爱好:喜欢唱歌

姓名:小明
性别:男
年龄:15
爱好:喜欢跳舞
请按任意键继续. . .

C# 结构的特点
您已经用了一个简单的名为 Books 的结构。在 C# 中的结构与传统的 C 或 C++中的结构不同。C# 中的结构有以下特点:

  • 结构可带有方法、字段、索引、属性、运算符方法和事件。
  • 结构可定义构造函数,但不能定义析构函数。但是,您不能为结构定义默认的构造函数。默认的构造函数是自动定义的,且不能被改变。
  • 与类不同,结构不能继承其他的结构或类。
  • 结构不能作为其他结构或类的基础结构。
  • 结构可实现一个或多个接口。
  • 结构成员不能指定为 abstract、virtual 或 protected。
  • 当您使用 New 操作符创建一个结构对象时,会调用适当的构造函数来创建结构。与类不同,结构可以不使用 New 操作符即可被实例化。
  • 如果不使用 New 操作符,只有在所有的字段都被初始化之后,字段才被赋值,对象才被使用。

枚举

枚举是一组命名整型常量。枚举类型是使用 enum 关键字声明的。
C# 枚举是值数据类型。换句话说,枚举包含自己的值,且不能继承或传递继承。

声明enum变量:
一般语法

enum <enum_name>
{ 
    enumeration list 
};
  • enum_name 表示枚举类型的名字
  • enumeration 表示标识符列表

    枚举列表中的每个符号代表一个整数值,一个比它前面的符号大的整数值。默认情况下,第一个枚举符号的值是 0.

实例

using System;
namespace EnumApplication
{
   class EnumProgram
   {
      enum Gender {
          男,
          女
      };

      static void Main(string[] args)
      {
         int GenderNan = (int)Gender.男;
         int GenderNv = (int)Gender.女;
         Console.WriteLine("Monday: {0}", GenderNan );
         Console.WriteLine("Friday: {0}", GenderNv );
         Console.ReadKey();
      }
   }
}

当上面的代码被编译和执行时,它会产生下列结果:

GenderNan: 0
GenderNv: 1

猜你喜欢

转载自blog.csdn.net/qq_29266497/article/details/80787630