
C#学习笔记
个人学习复习使用
怒折饭卡
这个作者很懒,什么都没留下…
展开
-
C#之委托与事件、匿名函数与lambda表达式
事件指的是用户的一个操作,例如按键,鼠标点击,鼠标移动,或者是一些提示信息,如系统生成的通知。应用程序需要在事件发生时响应事件。匿名方法是没有名称只有主体的方法,同时匿名方法不需要返回值类型,匿名方法的返回值类型是根据主体中return语句来推断的。2.多播委托是有执行顺序的,大体上表现为先+=的委托先执行,后加减的委托后执行。1.将许多相同类型的委托合并在一起,通过+=合并一个委托,-=撤销一个委托。C#中委托与c++中的函数指针类似,是存有对某个方法引用的引用类型。事件是基于委托的,是委托的一种签名。原创 2024-04-20 20:20:16 · 894 阅读 · 0 评论 -
C#之静态类、抽象类与密封类、抽象类与接口、字符串
2.静态类的内存存放在静态全局区,静态全局区的内存是在整个程序结束时释放的,如果我们使用一个类来继承一个静态类,那么派生类被释放时会调用基类的析构函数,则会提前释放静态的内存,这种情况是不被允许的,因此。答案是肯定的,使用static修饰一个普通类的构造函数是C#中特有的,静态构造函数不能带有参数与访问权限修饰符,同时一个类只能有一个静态构造函数,并且不能被显式的调用。4.继承接口的类必须实现接口中的所有成员,如果一个类继承了多个接口,那么这个类需要实现这些接口的所有成员。原创 2024-04-19 18:55:23 · 565 阅读 · 0 评论 -
C# 面向对象之封装与多态详解
同时我们把类的一系列行为放入一个个函数中,在需要时调用相应的函数即可,在外部只能看见我们函数的执行,而不是直接看见代码,也降低程序的耦合。多态就是同一行为的不同表现形式,不同派生类对象对来自基类的同一方法(行为)的重写,使不对派生类对象对这一行为的具体实践不同。在C#中,我们用类来抽象某一具体的事物,那么这是事物本身会具有一些属性和一些行为。即运行时多态 在程序运行时判断所引用的实际类型,根据具体的类型来调用相应的方法。继承了抽象类的派生类必须实现派生类中用abstract修饰的方法。原创 2024-04-18 23:33:46 · 419 阅读 · 0 评论 -
C# foreach
foreach与for、while等关键字一样都是定义循环语句的。简洁 不需要给初始值、步长,结束条件,会自动遍历集合中的所有值。foreach语法相对for。foreach效率比for高。不关心数组的长度与起始下标。foreach是只读类型。会造成额外的gc开销。原创 2024-04-17 18:29:52 · 317 阅读 · 0 评论 -
C#面向对象
动态多态:不同派生类的对象对同一方法的不同实现(同一事物的不同表现形式),由派生类重写/实现基类的virtual/abstract方法。使用一个基类的指针,如果指针指向的是一个派生类的对象则调用派生类的方法。继承:派生类继承基类的非private字段和方法,派生类可以对基类的对基类的virtual或abstract方法进行重写。封装:是指将具体的实现过程和数据封装成一个函数,只能通过指定的接口进行访问,降低程序的耦合。对象是只一个具体的事物,这个事物的抽象就是类。原创 2024-04-16 20:38:54 · 134 阅读 · 0 评论 -
C#访问权限修饰符
默认访问权限:类的默认访问权限internal 成员的默认访问权限:private。protected:可以在当前程序集类中和子类中访问。public:可以在任意程序集(项目中访问)internal:可以在程序集类中和类外访问。private:只能在内中访问。原创 2024-04-16 16:36:05 · 185 阅读 · 2 评论 -
C#值类型和引用类型
值类型:直接存储数据int short long double float bool struct等等。4.值类型继承自system.valuetype,引用类型继承自system.object。引用类型:数据的引用(地址),数据存放在堆区,class 委托 事件等等。3.值类型表示的是实际的数据,引用类型表示的是一个指向堆区的地址。1.值类型数据存储在栈区,引用类型数据存放在堆区。5.栈区的内存是自动释放的,堆区的内存有GC回收。2.值类型存取速度快,引用类型存储数据慢。值类型与引用类型的区别。原创 2024-04-16 20:10:06 · 152 阅读 · 0 评论