C#知识点七

C#结构(Struct)
·在 C# 中,结构是值类型数据结构。它使得一个单一变量可以存储各种数据类型的相关数据。struct 关键字用于创建结构。
·结构是用来代表一个记录。假设您想跟踪图书馆中书的动态。您可能想跟踪每本书的以下属性:
1、Title
2、Author
3、Subject
4、Book ID
(1)定义结构:为了定义一个结构,必须使用strut语句;struct 语句为程序定义了一个带有多个成员的新的数据类型
(2)C#结构的特点:
·如果已经用了一个简单的名为 Books 的结构。在C#中的结构与传统的C或 C++ 中的结构不同;C#中的结构有以下特点:
1、结构可带有方法、字段、索引、属性、运算符方法和事件。
2、结构可定义构造函数,但不能定义析构函数。但是,您不能为结构定义默认的构造函数。默认的构造函数是自动定义的,且不能被改变。
3、与类不同,结构不能继承其他的结构或类。
4、结构不能作为其他结构或类的基础结构。
5、结构可实现一个或多个接口。
6、结构成员不能指定为 abstract、virtual 或 protected。
7、当使用 New 操作符创建一个结构对象时,会调用适当的构造函数来创建结构。与类不同,结构可以不使用 New 操作符即可被实例化。
8、如果不使用 New 操作符,只有在所有的字段都被初始化之后,字段才被赋值,对象才被使用
(3)类 vs 结构:有以下几个基本的不同点
·类是引用类型,结构是值类型。
·结构不支持继承。
·结构不能声明默认的构造函数。
C#枚举(Enum)
·枚举是一组命名整型常量。枚举类型是使用 enum 关键字声明的
·C# 枚举是值数据类型。换句话说,枚举包含自己的值,且不能继承或传递继承。
(1)声明enum变量
声明枚举的一般语法:

其中:
·enum_name 指定枚举的类型名称。
·enumeration list 是一个用逗号分隔的标识符列表。
·枚举列表中的每个符号代表一个整数值,一个比它前面的符号大的整数值。默认情况下,第一个枚举符号的值是 0.例如:
enum Days { Sun, Mon, tue, Wed, thu, Fri, Sat };
C#类(Class)
·当定义一个类时,定义了一个数据类型的蓝图。这实际上并没有定义任何的数据,但它定义了类的名称意味着什么,也就是说,类的对象由什么组成及在这个对象上可执行什么操作。对象是类的实例。构成类的方法和变量成为类的成员。
(1)类的定义
·类的定义是以关键字class开始,后跟类的名称;类的主体,包含在一对花括号内
注意:
·访问标识符 指定了对类及其成员的访问规则。如果没有指定,则使用默认的访问标识符。类的默认访问标识符是 internal,成员的默认访问标识符是 private。
·数据类型 指定了变量的类型,返回类型 指定了返回的方法返回的数据类型。
·如果要访问类的成员,要使用点(.)运算符。
·点运算符链接了对象的名称和成员的名称。
(2)成员函数和封装
·类的成员函数是一个在类定义中有它的定义或原型的函数,就像其他变量一样。作为类的一个成为,它能在类的任何对象上操作,且能访问该对象的类的所有成员。
·成员变量是对象的属性(从设计角度),且它们保持私有来实现封装。这些变量只能使用公共成员函数来访问。
(3)C#中的构造函数
·类的构造函数是类的一个特殊的成员函数,当创建类的新对象时执行
·构造函数的名称与类的名称完全相同,它没有任何返回类型
·默认的构造函数没有任何参数。但是如果需要一个带有参数的构造函数可以有参数,这种构造函数叫做参数化构造函数。这种技术可以帮助在创建对象的同时给对象赋初始值
(4)C#中的析构函数
·是类的一个特殊的成员函数,当类的对象超出范围时执行。
·析构函数的名称是在类的名称前加上一个波浪形(~)作为前缀,它不返回值,也不带任何参数。
·用于在结束程序(比如关闭文件、释放内存等)之前释放资源。析构函数不能继承或重载
(5)类的静态成员
·可以使用 static 关键字把类成员定义为静态的。当我们声明一个类成员为静态时,意味着无论有多少个类的对象被创建,只会有一个该静态成员的副本。
·关键字 static 意味着类中只有一个该成员的实例。静态变量用于定义常量,因为它们的值可以通过直接调用类而不需要创建类的实例来获取。静态变量可在成员函数或类的定义外部进行初始化。也可以在类的定义内部初始化静态变量
·也可以把一个成员函数声明为 static。这样的函数只能访问静态变量。静态函数在对象被创建之前就已经存在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值