自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 C#之反射详解

反射(Reflection)是指程序可以访问、检测、修改它本身的状态和行为的一种能力反射提供程序集、模块和类型的对象。

2024-05-13 19:21:49 280

原创 C#之泛型与单例

值类型约束:where T:struct (在C#中struct表示值类型,而在C++中struct表示结构体)泛型派生 where T:U 表示T和U必须是同一类型或者是他的派生类型。泛型编程是增强程序功能的技术,合理的使用泛型编程可以最大程度的复用代码。接口的派生 where T:接口名 表示T必须是指定接口的派生。类的派生where T:类名 表示T必须是指定类的派生类。泛型类、泛型方法,泛型接口,泛型委托、泛型事件等等。引用类型约束:where T:class。

2024-04-23 13:35:08 304

原创 C#之委托与事件、匿名函数与lambda表达式

事件指的是用户的一个操作,例如按键,鼠标点击,鼠标移动,或者是一些提示信息,如系统生成的通知。应用程序需要在事件发生时响应事件。匿名方法是没有名称只有主体的方法,同时匿名方法不需要返回值类型,匿名方法的返回值类型是根据主体中return语句来推断的。2.多播委托是有执行顺序的,大体上表现为先+=的委托先执行,后加减的委托后执行。1.将许多相同类型的委托合并在一起,通过+=合并一个委托,-=撤销一个委托。C#中委托与c++中的函数指针类似,是存有对某个方法引用的引用类型。事件是基于委托的,是委托的一种签名。

2024-04-20 20:20:16 476

原创 C#之静态类、抽象类与密封类、抽象类与接口、字符串

2.静态类的内存存放在静态全局区,静态全局区的内存是在整个程序结束时释放的,如果我们使用一个类来继承一个静态类,那么派生类被释放时会调用基类的析构函数,则会提前释放静态的内存,这种情况是不被允许的,因此。答案是肯定的,使用static修饰一个普通类的构造函数是C#中特有的,静态构造函数不能带有参数与访问权限修饰符,同时一个类只能有一个静态构造函数,并且不能被显式的调用。4.继承接口的类必须实现接口中的所有成员,如果一个类继承了多个接口,那么这个类需要实现这些接口的所有成员。

2024-04-19 18:55:23 400

原创 C# 面向对象之封装与多态详解

同时我们把类的一系列行为放入一个个函数中,在需要时调用相应的函数即可,在外部只能看见我们函数的执行,而不是直接看见代码,也降低程序的耦合。多态就是同一行为的不同表现形式,不同派生类对象对来自基类的同一方法(行为)的重写,使不对派生类对象对这一行为的具体实践不同。在C#中,我们用类来抽象某一具体的事物,那么这是事物本身会具有一些属性和一些行为。即运行时多态 在程序运行时判断所引用的实际类型,根据具体的类型来调用相应的方法。继承了抽象类的派生类必须实现派生类中用abstract修饰的方法。

2024-04-18 23:33:46 324

原创 C# 面向对象之继承详解

在子类中可以使用base调用父类的方法 也可以在子类构造函数的初始化列表调用父类的构造构造函数,但是在静态类中不能使用base。继承关系需要符合逻辑不能为了继承而继承,只有当一个类在逻辑上属于另一个类时(老虎属于动物,树属于植物)继承就是合理的。在子类中此方法将覆盖从父类中继承过来的同名方法 但是不会改变父类中的同名方法。但new还有另一个用法:用于修饰子类中与父类重名的方法表示覆盖。继承就是子承父业,子类继承父类的字段(数据成员)和方法。同时一个类只能有一个父类 即单继承类。overide与new。

2024-04-17 21:51:57 109 1

原创 C# out与ref

2、在函数体中,程序不一定需要对ref的值进行改变 out必须在函数体中重新赋值。1、使用ref时传入参数必须要初始化 out可以不用初始化。out与ref都是址传递,执行方法后原来的值会改变。

2024-04-17 19:05:53 185 1

原创 C# foreach

foreach与for、while等关键字一样都是定义循环语句的。简洁 不需要给初始值、步长,结束条件,会自动遍历集合中的所有值。foreach语法相对for。foreach效率比for高。不关心数组的长度与起始下标。foreach是只读类型。会造成额外的gc开销。

2024-04-17 18:29:52 243

原创 C#面向对象

动态多态:不同派生类的对象对同一方法的不同实现(同一事物的不同表现形式),由派生类重写/实现基类的virtual/abstract方法。使用一个基类的指针,如果指针指向的是一个派生类的对象则调用派生类的方法。继承:派生类继承基类的非private字段和方法,派生类可以对基类的对基类的virtual或abstract方法进行重写。封装:是指将具体的实现过程和数据封装成一个函数,只能通过指定的接口进行访问,降低程序的耦合。对象是只一个具体的事物,这个事物的抽象就是类。

2024-04-16 20:38:54 96

原创 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 110

原创 C#访问权限修饰符

默认访问权限:类的默认访问权限internal 成员的默认访问权限:private。protected:可以在当前程序集类中和子类中访问。public:可以在任意程序集(项目中访问)internal:可以在程序集类中和类外访问。private:只能在内中访问。

2024-04-16 16:36:05 119 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除