随笔分类 - Csharp
摘要:静态方法 Equals 判断两个对象是否相等 最终的判断全交给左侧对象的Equals方法 不管是值类型还是引用类型都会按照左侧对象Equals方法的规则来进行比较 ReferenceEquals 比较两个对象是否是相同的引用,主要用来比较引用类型的对象 值类型对象返回值始终是false 成员方法 G
阅读全文
摘要:基本概念 命名用来组织和重用代码 命名空间像一个工具包,而类就像工具 //基本语法 //namespace 命名空间名 //{ // 类 // 类 //} using MyGame;//引用命名空间 namespace MyGame { class GameObject { } } //命名空间可以
阅读全文
摘要:基本概念 用 sealed 修饰重写函数 让虚方法和抽象方法不能再重写 abstract class Animal { public string name; public abstract void Eat(); public virtual void Speak() { Console.Writ
阅读全文
摘要:基本概念 接口时行为的抽象规范 关键字 interface 接口申明规范 不包含成员变量 只包含方法、属性、索引器、事件 成员不能被实现 成员可以不用写访问修饰符,但是不能是私有的 接口不能继承类,但是可以继承另一个接口 接口的使用规范 类可以继承多个接口 类继承接口后,必须实现接口中的所有成员 接
阅读全文
摘要:基本概念 让继承同一父类的子类们在执行相同方法时有不同的表现 运行时的多态:vob、抽象函数、接口 v: virtual 虚函数 o: override 重写 b: base 父类 class GameObject { public string name; public GameObject(st
阅读全文
摘要:基本概念 用 sealed 密封关键字修饰的类,让类无法再被继承 class Father { } //Son无法被别的类继承 sealed class Son : Father { }
阅读全文
摘要:万物之父的基本概念 关键字 object object 是所有类型的基类 可以利用里氏替换原则,用 object 容器装所有对象 可以用来表示不确定类型,作为函数的参数类型 obejct的使用 //引用类型 object o = new Son(); Son s = new Son(); o = s
阅读全文
摘要:基本概念 当申明一个子类对象时,先执行父类的构造函数,然后再执行子类的构造函数 子类可以通过 base 调用父类构造函数 继承中的构造函数执行顺序 Class GameObject { public GameObject() { Console.WriteLine("GameObject的构造函数"
阅读全文
摘要:基本概念 任何父类出现的地方,子类都可以替代 语法表现:父类容器装子类对象,因为子类对象包含了父类所有的内容 方便进行对象存储和管理 class GameObject { } class Player : GameObject { public void PlayerAtk() { Console.
阅读全文
摘要:继承的基本概念 一个类A继承一个类B 类A将会继承类B的所有成员 类A将拥有类B的所有特征和行为 被继承的类称为父类、基类、超类 继承的类称为子类、派生类 子类可以有自己的特征和行为 子类只能有一个父类,子类可以间接继承父类的父类 基本语法 //class 类名 : 被继承的类名 //{ // //
阅读全文
摘要:内部类 在一个类中再申明一个类 class Person { Arms leftArm; Arms rightArm; public class Body { //不写访问修饰词就默认是private class Arms { } } } Person p = new Person(); Perso
阅读全文
摘要:基本概念 让类和结构体能够运用运算符 关键字 operator 必须要是一个公共的静态方法,返回值要在 operator 前 条件运算符需要成对实现,一个符号可以多个重载且不能使用ref和out 基本语法 //public static 返回类型 operator 运算符(参数列表) class P
阅读全文
摘要:拓展方法基本概念 为现有非静态的变量类型添加新方法 一定要写在静态类中,一定是个静态函数,第一个参数为拓展目标,第一个参数用 this 修饰 (构造函数中可以用 this 来复用构造函数,索引器的语法中也会用到 this : 访问修饰符 返回值 this [参数类型 参数名,参数类型参数名] 基本语
阅读全文
摘要:静态类 用static修饰的类 只能包含静态成员且不能被实例化 static class TestStatic { //静态成员变量 public static int testIndex = 0; //静态方法 public static void TestFun() { } //静态成员属性 p
阅读全文
摘要:静态成员基本概念 静态成员关键字 static 静态成员直接用类名点出来使用 自定义静态成员 class Test { //静态成员变量 public static float pi=3.1415926f; //成员变量 public int num = 10; //静态成员方法 public st
阅读全文
摘要:索引器的基本概念 让对象可以像数组一样通过索引访问其中元素,使程序看起来更直观,更容易编写 索引器基本语法 //访问修饰符 返回值 this [参数类型 参数名,参数类型参数名] //{ // 内部的写法和规则与属性相同 // get{} // set{} //} class Person { pr
阅读全文
摘要:成员属性 用于保护成员变量 为成员属性的获取和赋值添加逻辑处理 解决了private public protected的局限性 属性可以让成员变量在外部只能获取不能修改或者只能修改不能获取 成员属性的基本语法 //访问修饰符 属性类型 属性名 //{ // get{} // set{} //} cl
阅读全文
摘要:构造函数 在实例化对象时会调用的用于初始化的函数,如果不写则默认存在一个无参构造函数 构造函数没有返回值,函数名和类名必须相同 构造函数可以重载 如果自己不是实现无参构造函数就实现了有参构造函数的话,就会失去默认的无参构造函数 class Person { public string name; p
阅读全文
摘要:成员方法(函数)用来表现对象行为 申明在类语句块中,规则和函数申明规则相同 成员方法不用加static关键字 成员方法必须实例化对象,再通过对象来使用,相当于该对象执行了某个行为 class Person { public string name; public int age; public Pe
阅读全文
摘要:成员变量 申明在类语句块中 用来描述对象的特征 可以是任意变量类型 数量不做限制 是否赋值根据需求来定 enum E_Gender { Male, Female, } struct Position { } class Person //类中可以使用任何变量类型 { //特征——成员变量 //姓名
阅读全文