【Note】C#基础知识(4)
委托
在中间件之前,先说一下委托。我自己在日常开发中好像也没怎么用到自定义的委托,不过还是要了解一下,那么委托是什么呢?委托是一种引用类型,如字面意思:在C#里委托就是委托别的方法来实现具体的功能。借用网上一个例子解释一下:
1234567891011121314151617181920212223242526public delegate void GreetingDelegate(string name);class Program{ private static void EnglishGreeting(string name) { Console.WriteLine("Morning, " + name); } private static void ChineseGreeting(string name) { Console.WriteLine("早上好, " + name); ...
【Note】C#基础知识(3)
try-catch-finally的用法
try:代码块里放的是需要被捕获异常的代码。
catch:捕获异常,跟在try后面,可以有一个或多个catch。
finally:无论异常有没有抛出,都会执行代码块,即使try里有return也会在返回之前执行finally里的内容。
在代码中,不可以仅有try代码块,在try后需要有catch或者finally代码块。也就是说try和finally代码块之间可以没有catch代码块,有异常的时候会直接抛出到系统层面。
catch块中的排序
由派生程度高到低的顺序排序,例如:AbandonedMutexException从SystemException中派生,则在同时使用两者的情况下,SystemException不能在AbandonedMutexException前面catch。
equals和==的区别
对于值类型来说,两者比较的都是值是否相同。
对于引用类型来说,==比较的是两个变量的引用的地址是否一样。equals依然比较的是值是否 ...
【Note】C#基础知识(2)
基本访问修饰符
Public - 公开的都可访问。
Internal - 程序集内可访问。
Protected - 子类可以访问父类,其他类不可访问。
Private - 私有的,仅当前类可访问。
Protectef Internal - 在当前程序集内可访问,在其他程序集内需通过派生类类型的变量进行访问。
用VS新建的类在不添加修饰符字段的情况下默认是Internal,字段默认的是Private,接口默认的是Public。
值传递和引用传递
通过值传递传递参数的话,形参接收到的参数是实参的副本,所以在对形参进行更改的时候,对实参本身没有任何影响。
通过引用传递传递参数的话,形参接收到的参数就是实参的本身的地址了,形参和实参指向了同一个存储单元,所以在对形参进行更改的时候,对实参本身也进行了更改。这里顺道解释一下什么是实参什么是形参,比如下面的例子。123456789public void Function1(){ int x = 0; Function2(x);// x - 实参}public void Function2(int y) // ...
【Note】C#基础知识(1)
C#中的值类型和引用类型的区别
在C#中,数据类型分成了两大类,一是值类型,另外就是引用类型。 而这两者的区别主要是:
值类型存储在内存的栈中(线程栈,最大1M),使用完毕后会自动释放掉;引用类型存放在内存的堆中,需要等待垃圾回收机制进行回收。
值类型表示实际的数据;引用类型存储对其数据的引用。(PS:引用这其实是一个很模糊的概念,简单的来说,引用是一个小的数据块,CLR根据里面的信息来找到该引用指向的对象)
这里有一个知识点,帮助更好的理解两者的区别,就是自动释放和等待垃圾回收。 这两者需要上升到操作系统的层面,因为值类型存储在栈中,分配的内存比较小,操作系统就能对其进行控制。而引用类型存储在堆中,当新建一个引用类型的时候,就会在堆上给其分配内容,尽管其引用保存在栈上,但其本身创建在堆中,所以当其引用被释放掉的时候,其本身还在内存中,所以释放需要等待垃圾回收。
常见的值类型和引用类型
类 ...
【Note】面向对象的简单理解
面向对象是什么?
个人理解:面向对象就是把某件事、某样东西,抽象成一个整体对象。例如:张三是一名老师,这里张三其实就是一个对象,老师是他的职业,也就是他的属性。
面向对象的三大特性
继承 - 简单的理解就是类与类之间的联系、层次结构,例如:子类继承父类的方法、属性,提高了代码的复用。
封装 - 按字面意思理解,就是把某样东西封住,包装起来。其实这里面封和装分别针对的是数据和功能,将数据和处理过程封起来,对外提供出相应的方法供调用。增加了数据的安全性,降低模块之间的耦合度。
多态 - 简单的理解就是,一个对象,它有不同的形态。为了解决算法变化的问题,提高代码的复用性。
小小的总结
日常开发中,我个人比较追求使用更简洁、更高效的代码来实现某个功能,那么对面向对象的分析和理解,特别是三大特性的理解,在什么时候应该怎么用,有效的让代码更加的简洁。这在设计的时候 ...
【Solution】独臂路由 + Mesh组网方案
前言
前一段时间利用单网口的工控机 + 斐讯K2P(主路由)搭建Openwrt独臂路由,主要用于科学上网。后面因为搬家,加上入手了小米路由器AX9000,并且所有设备都需要科学上网的需求不强,于是就直接用了新的路由器。把原先搭好的这套放在了一边,最近因有相关的需要,决定重新启用这套配置,并且记录一下实现的过程。
拓扑图
首先画了个拓扑图,如图所示。 从图中可以看到,主路由设置成了AP模式,光猫设置成了桥接。这里边还是要解释一下AP模式和桥接的区别。简单的来说: 路由器的AP(接入点)模式大概是,将一根可以上网的网线插在路由器上就不需要其他配置,就可以正常上网了,其实说到底就是一台拥有无线功能的交换机。 光猫的Bridge(桥接)模式大概是,把相连的两个设备连同,而光猫这里的桥接相当于是只做光信号的转换,实际的数据交换是交给上层设备。
解析
...
【系统集成项目管理】第二十章 - 项目收尾管理
学习笔记均来自鲜知教育配套PPT,后自行总结
项目收尾管理
工作包括:
1、项目验收工作
2、项目总结工作
3、系统维护工作
4、项目后评价工作
项目验收
1、验收测试
2、系统试运行
3、系统文档验收
4、项目终验
项目总结
1、项目绩效
2、技术绩效
3、成本绩效
4、进度计划绩效
5、项目的沟通
6、识别问题和解决问题
7、意见和建议
系统维护
软件项目的后续工作
1、软件bug的修改
2、软件升级
3、后续技术支持
系统集成项目的后续工作:
1、信息系统日常维护工作
2、硬件产品更新
3、满足信息系统新需求
项目后评价
主要工作内容:
1、目标评价
2、过程评价
3、效益评价
4、可持续性评价
【系统集成项目管理】第十九章 - 项目风险管理
学习笔记均来自鲜知教育配套PPT,后自行总结
风险的分类
1、按性质划分:纯粹风险和投机风险
2、按产生原因划分:
(1)、自然风险
(2)、社会风险
(3)、政治风险
(4)、经济风险
(5)、技术风险
风险的性质
1、客观性
2、偶然性
3、相对性 - 因时空各种因素变化而变化。
4、社会性
5、不确定性
风险是并不能完全消除的。
项目风险管理过程
1、规划风险管理
2、识别风险
3、定性风险分析 - 对风险进行评估,并且排序,风险大的排在前面,小的再后面
4、定量风险分析 - 对风险大的进行定量分析
5、规划风险应对
6、风险监控
识别风险的工具与技术
1、文档审查
2、信息收集技术
3、核对表分析
4、假设分析
5、图解技术
6、SWOT分析:Strength - 优势、Weakness - 劣势、Opportunity - 机会、Threat - 威胁
识别风险的输出
风险登记册,内容:
(1)、已识别风险清单
(2)、潜在应对措施清单
(3)、风险根本原因
(4)、风险类别更新
识别风险的原则
1、由粗及细,由细及粗。
2、严格界定风险内涵并考虑风险因素之间的 ...
【系统集成项目管理】第十八章 - 信息系统安全管理
学习笔记均来自鲜知教育配套PPT,后自行总结
信息安全属性和目标
1、保密性 - 数据加密
2、完整性 - 数据签名、防火墙系统
3、可用性 - 可靠的功能性的安全进程和机制、数据冗余及备份
信息系统安全管理体系
技术体系包括:物理安全、运行安全(安全审计)、数据安全
人员安全管理
1、允许一人多岗,但业务应用操作人员不能由其他关键岗位人员兼任。关键岗位人员应定期接受安全培训。
2、应采取定期轮岗制度。
3、权限分散要求:系统管理员、数据库管理员、网络管理员不能相互兼任岗位或工作。
4、多人共管要求。
5、全面控制要求。
系统运行安全和保密层次
从粗到细
1、系统级别安全
2、资源访问安全
3、功能性安全
4、数据域安全
信息安全等级保护
1、第一级(个人 - 造成损害)
2、第二级(个人 - 严重损害,社会利益 - 遭到损害)
3、第三级(公共利益 - 严重损害,国家安全 - 造成损害)
4、第四级(公共利益 - 特别严重损害,国家安全 - 严重损害)
5、第五级(国家安全 - 特别严重损害)
【系统集成项目管理】第十七章 - 项目变更管理
学习笔记均来自鲜知教育配套PPT,后自行总结
项目变更的基本概念
项目变更指在项目实施过程中,任何情况下发生的对项目原定基准下的任何改变。
项目变更的分类
1、按性质可分为:重大变更、重要变更和一般变更。
2、按迫切性可分为:紧急变更、非紧急变更。
3、按所发生的的领域和阶段可分为:进度变更、成本变更、质量变更、设计变更、实施变更和工作范围变更。
4、按来源可分为:内部变更和外部变更。
项目变更的流程
1、提出变更申请
2、变更影响分析 -> 由项目经理负责
3、CCB审查批准
4、实施变更
5、监控变更实施
6、结束变更