美文网首页
C#中的类和对象

C#中的类和对象

作者: 吵吵人 | 来源:发表于2019-03-06 16:01 被阅读0次

可访问性

基类和派生类

省略基类的指定等同于从类型 object 派生。
用new生成对象,当不再使用对象时,该对象占用的内存将自动收回。在 C# 中,没有必要也不可能显式释放分配给对象的内存。

派生类能够在继承基类的基础上添加新的成员,但是它不能移除继承成员的定义。
类类型的变量可以引用该类的实例或任何派生类的实例。例如,Point 类型的变量既可以引用 Point 也可以引用 Point3D:

静态(static)和实例

1. 静态字段和实例字段
在C#程序中,没有全局变量的概念,这意味着所有的成员变量只有该类的实例才能操作这些数据。静态变量在类中类似全局变量,保存类的公共信息,所有该类的实例(对象)共享该值。
使用 static 修饰符声明的字段定义了一个静态字段 (static field)。一个静态字段只标识一个存储位置。对一个类无论创建了多少个实例,它的静态字段永远都只有一个副本。不使用 static 修饰符声明的字段定义了一个实例字段 (instance field)。类的每个实例都包含了该类的所有实例字段的一个单独副本。

使用 readonly 修饰符声明只读字段 (read-only field)。给 readonly 字段的赋值只能作为字段声明的组成部分出现,或在同一类中的实例构造函数或静态构造函数中出现。

2. 静态方法和实例方法
静态方法不对特定实例进行操作,并且只能访问静态成员;实例方法对特定实例进行操作,并且能够访问静态成员和实例成员。

调用方法

函数参数

有四种类型的参数:值参数引用参数输出参数参数数组

  1. 对值参数的修改不影响为该形参传递的实参(新手注意)。
  2. 引用参数使用 ref 修饰符声明。为引用参数传递的实参必须是变量,并且在方法执行期间,引用参数与实参变量表示同一存储位置。
  1. 输出参数是用 out 修饰符声明。使返回多个返回值成为可能。
  1. 参数数组 (parameter array) 允许向方法传递可变数量的实参。参数数组使用 params 修饰符声明。只有方法的最后一个参数才可以是参数数组,并且参数数组的类型必须是一维数组类型。

虚方法、重写方法和抽象方法

声明 定义或功能
虚方法 virtual 引入新方法,可以在派生类中重写
重写方法 override 重写所继承的具有相同签名的虚方法
抽象方法 abstract 没有实现的虚方法;只有在同样被声明为 abstract 的类中才允许出现;必须在每个非抽象派生类中重写。

下面的示例声明一个抽象类 Expression,它表示一个表达式树节点;它有三个派生类 Constant、VariableReference 和 Operation,它们分别实现了常量、变量引用和算术运算的表达式树节点。




下面的程序使用 Expression 类,对于不同的 x 和 y 值,计算表达式 x * (y + 2) 的值。

启发:

  1. 如何实现数值的带入,日后可用于计算复杂公式。
  2. 抽象类使用:在表达式中。既可使用数字也可以使用字符

其他函数成员

  • 构造函数:和类名相同,用于初始化。
  • 属性函数
  • 索引器:该成员的名称是 this,后跟一个位于定界符 [ 和 ] 之间的参数列表。
  • 事件:事件处理程序使用 += 运算符添加,使用 -= 运算符移除。下面的示例向 List 类的 Changed 事件添加一个事件处理程序。
  • 运算符:定义了特定表达式运算符的含义

第一个 Console.WriteLine 输出 True,原因是两个列表包含的对象数目和值均相同。如果 List 未定义 operator ==,则第一个 Console.WriteLine 将输出 False,原因是 a 和 b 引用的是不同的 List 实例。


原文:https://www.cnblogs.com/kongxiaoshuang/p/6364114.html

相关文章

  • C#中的类和对象

    可访问性 基类和派生类 省略基类的指定等同于从类型 object 派生。用new生成对象,当不再使用对象时,该对象...

  • 2017 10 20

    今天的课上内容是C#面向对象程序设计。三个基本特性:封装 继承 多态。还有C#中的类和对象。和之前学的相似 但也有...

  • 学习C#中的类(认识类和对象)

    洗脑价值观 by 杂学的程序员面向对象编程, 也就是面向你喜欢的那一类对象中,实际存在的一个实例妹子 . 类中不但...

  • C# 类和对象

    类(Class)为动态创建的类实例(亦称为“对象”)提供了定义。新类使用类声明进行创建。 标头,指定了类的特性和修...

  • C#类和对象详解

    1.面向对象语言的三大特征:封装,继承,多态。封装:封装就好像把所有的硬件设施放在手机里,而用户只能看到手机的外观...

  • C#中as的用法

    c# 中 as 用法 : 这句代码等价于: 意思是判断实例对象是否属于某个类 完整代码:

  • C#中使用Newtonsoft.Json序列化和反序列化自定义类

    在C#中序列化和反序列化自定义的类对象是比较容易的,比如像下面的一个Customer类, 在Windows10系统...

  • Lua实现面向对象

    注:只是仿照,并不是真正的面向对象C#中是用this表示当前类的对象,Lua中使用self点(.)与冒号(:)的区...

  • .net开发CAD

    C# 类库 添加引用 • AcDbMgd.dll (当处理图形文件中存储的对象时引用) • AcMgd.dll (...

  • json的那点事

    JSON对象是直接可以使用JQuery操作的格式,如C#中可以用对象(类名)点出属性(方法)一样; JSON字符串...

网友评论

      本文标题:C#中的类和对象

      本文链接:https://www.haomeiwen.com/subject/epntpqtx.html