自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C#设计模式:简单工厂模式

然后提供一个工厂类用于创建各种产品,在工厂类中提供一个创建产品的工厂方法,该方法可以根据所传入的参数的不同创建不同的具体产品对象;抽象类库:所要创建的类的基类,描述类所有实例所共有的公共接口(方法),可以是抽象类也可是接口类型(interface)。简单工厂模式简单来说就是创建一个工厂类,通过输入的参数创建对象赋值给基类,完成对想要的派生类的调用,从而达成目标,首先将需要创建的各种不同产品对象的相关代码封装到不同的类中,这些类称为具体产品类。3、工厂类库:根据参数的不同返回不同类的实例。

2023-08-15 10:06:38 676 1

原创 C#:设计模式:观察者模式

被观察者的状态发生了改变之后需要通知观察者做出相应的动作,比如在游戏中当我们点击了一个开始按钮,就需要加载音乐、场景等,这里的按钮就是被观察者,场景和音乐管理器就是观察者。观察者:相当于事件的订阅者(事件对应具体方法实现),它会观察被监视对象的某些属性,当这些属性发生变化时,会触发观察者做出对应的反应。加热水的加热器,时刻显示水温的显示器,当水温达到90度时的报警器。被观察者:相当于事件发布者(定义事件,触发事件),其中有一些属性来被其它对象所监视。思路:这题猫是被观察者,老鼠、主人、宝宝都是观察者。

2023-08-14 22:34:47 262

原创 C#:反射

(常用)Assembly.LoadFrom() 根据程序集的文件名或路径,加载程序集(绝对路径/相对路径);Assembly.LoadFile() 加载指定路径上的程序集文件内容(相对路径),和上面方法的不同之处是这个方法不会加载此程序集引用的其他程序集。:标识(名称、版本、区域性、公钥)、导出的类型、该程序集所依赖的其他程序集、运行所需的安全权限。:名称、可见性、基类和实现的接口、成员(方法、字段、属性、事件、嵌套的类型)。如果type是程序集,type.FullName 就是程序集的绝对路径。

2023-08-14 22:00:49 75

原创 C#:设计模式

设计模式是程序员在面对同类软件工程设计问题所总结出来的有用的经验,模式不是代码,而是某类问题的通用解决方案,设计模式(Design pattern)代表了最佳的实践。3)行为型模式:模版方法模式、命令模式、访问者模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式(Interpreter 模式)、状态模式、策略模式、职责链模式(责任链模式)。其目的是为了提高代码的可重用性、代码的可读性和代码的可靠性。2)结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。

2023-08-14 15:01:19 465

原创 C#:事件

事件。

2023-08-12 20:19:12 178 1

原创 C#:委托

委托是一种动态调用方法的类型,属于引用类型;)委托是对方法的抽象和封装。委托对象实质上代表了方法的引用(即内存地址、指针);)委托通常是委托某个方法来实现具体的功能。当我们调用委托的时候,委托包含的所有方法将被执行。虽然在定义委托时与方法有些相似,但我们不能将其称为方法;)与委托绑定的方法方法签名(即返回值类型和形参列表)与委托一致;)委托本质是一个密封类,所以可以在命名空间下定义,也可以在类里面声明;1、继承自MulticastDelegate。

2023-08-12 12:29:07 73 1

原创 C#:方法(函数)

方法就是一段代码,这段代码可能有输入的值(形参),可能会返回值。一个函数就像一个专门做这件事的人,我们调用它来做一些事情,它可能需要我们提供一些数据给它,它执行完成后可能会有一些执行结果给我们。引用传递:是指在调用方法时实际参数和形式参数都指向同一个内存,这样在方法中如果对参数进行修改,将会影响到实际参数。调用:对象.方法名() 注:如果调用同一个类里面的方法,对象名可以省略。小技巧:封装方法时,看你有几个参数是变化的,一般定义成几个输入参数。值传递:按值传递,传递过去的是该值类型实例的一个拷贝。

2023-08-11 17:56:03 68 1

原创 C#:枚举,结构体

结构体是值类型数据,当一个结构体变量作为函数参数传递时, 属于值类型的值传递,也就是传入的是一个副本,函数体内对结构体的改变,不会影响方法体外的结构体变量。如果想要改变,可以使用ref 或者out 进行值类型的引用传递,这样,传入的参数就是结构体本身,当方法体内改变了结构体变量也就是改变了方法体外的结构体变量。枚举可以是任何数字数据类型,例如 byte,sbyte,short,ushort,int,uint,long 或 ulong。枚举的第一个成员将为0,并且每个连续枚举成员的值将增加1。

2023-08-11 16:48:57 87 1

原创 C#: Array、 list<T>、Dictionary<T1,T2>

OrderBy方法可以安装list中的指定元素升序排序,而ThenBy方可以附件排序按升序排序。降序用反转Reverse。

2023-08-10 22:13:03 93 1

原创 C#:进阶(多线程)

2、进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间(代码段、堆栈段和数据段),这种操作非常昂贵;一个进程可以由很多个线程组成,线程间共享进程的所有资源,每个线程有自己的堆栈(可以自己分配大小)和局部变量。因此CPU切换一个线程的花费远比进程要小很多,同时创建一个线程的开销也比进程要小很多。新建----->就绪----->运行------>阻塞------->死亡。进程是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例。线程是共享进程中的数据的,使用相同的地址空间;

2023-08-10 16:08:22 77 2

原创 C#基础知识(数组)

数组索引--代表的是数组元素的所在位置,给位置做的编号,编号就是索引,但是这里特别注意。数组长度:数组中元素的个数 数组名.Length---得到数组的长度。数组名[索引号]--------这个整体就代表对应索引号的数组元素。3、数组如何进行初始化以及赋值、遍历数组的元素 、数组的元素 、数组索引。这叫数组越界---编译的时候不会报错 运行的时候会报越界错误。数组的遍历:依次访问数组中的每个元素的过程就叫做遍历数组。数组的初始化--就是数组在定义时同时给每个元素赋值。

2023-08-09 21:37:31 620 1

原创 异常捕获(补充)

执行过程:如果try中的代码没有出现异常,那么catch中的代码不会执行。如果try中的代码出现了异常,那怕这行出现异常的代码后面还有一百行都不会执行了,而是直接跳到catch中执行代码。我们在程序中经常会出现各种各样的异常,你如果想要你的程序变得坚强一些。在你的代码中应该经常性的使用try-catch来进行异常捕获。//try和catch之间不能有其他的代码。哪行代码有可能出现异常,你就踹它一脚。出现异常后要执行的代码;可能会出现异常的代码;

2023-08-09 21:08:29 22 1

原创 C#学习:基础阶段(流程控制语句)

执行流程:表达式1--》执行表达式2 --》(假则跳出循环)如果表达式2为真--》执行循环体中语句。----》表达式3--》表达式2--》如果表达式2为真继续循环体 为假跳出循环。switch-case----用于多种可能性,当你的条件有多种可能性的时候同时每种可能性是具体的一个值。选择结构-----用于多种可能性,当你的条件有多种可能性的时候同时每种可能性可能是一个区间范围。while循环 语法结构--循环次数不固定的时候可以想到while。先执行do的循环体里的语句 --》判断循环条件--》

2023-08-09 20:46:26 76 1

原创 C#学习一、基础阶段(2)

关系运算符:>(大于) < (小于) >=(大于等于)

2023-08-09 20:11:39 27 1

原创 C#学习一、基础阶段(1)

二、.netframework的构成部分以及中间语言(MSIL(微软中间语言) CIL(公共中间语言))三、变量与常量(重点)

2023-08-09 19:25:22 46 1

空空如也

空空如也

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

TA关注的人

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