C#中的委托与事件
委托关于委托delegate 关键字创建的类型就是 System.MuticastDelegate (多播委托),使用反编译工具可以查看, System.MuticastDelegate 是保留类不允许继承。本质上委托都是多播委托,后期定义委托只有添加了多个方法才称为多播委托。 1public delegate void NoReturnNoParametersDelegate(); 常见实例化方式123456//new关键字实例化NoReturnNoParametersDelegate delegate1 = new NoReturnNoParametersDelegate(DoNothing);//赋值一个方法NoReturnNoParametersDelegate delegate2 = DoNothing;//lambda表达式NoReturnNoParametersDelegate delegate3 = () =>Console.WriteLine("This is a do nothing method."); 常见调用方式123del...
简单谈谈我对锤子及老罗的看法
不知不觉间,距上次锤子科技发布手机新品发布会已经接近一年了,而下一次感觉也是遥遥无期。手机行业,就是我这个外行人也知道,没有新品意味着什么 —— “死亡”。 老罗其实开始我并不熟悉老罗,即便他曾经说出过像“彪悍的人生不需要解释”这种网络流行语。 我和大多数人认识老罗的过程是不一样的,好多人应该是认识老罗后,知道老罗去做手机,而我是在知道锤子手机后才认识的老罗。 我自认为自己一直是老罗的路人粉,自从看了他的锤子T1发布会之后。 那个时候还在武汉读书,从几次手机产品的发布,能真真切切的感受到他是想做出一款理想的产品,能够得到他人认可的产品。 而且可能是因为自己是一个工科男,所以对于其在系统、软件功能的创新,感觉特别的痴迷。 而现在,老罗这个名字,之前在各个社交网站论坛上,还能经常看到讽刺甚至谩骂他的文章,现在也慢慢少了,偶尔翻到只能是一声叹息。 手机从锤子T1到坚果R1,几乎每场直播我都有追着看,一部分原因可能就像很多人一样,“看相声”。 比较遗憾的是,到目前为止,我也只买了一款坚果青春款,不过千元的手机把玩了一下,而后因为这个价格区间的性能问题,简单把玩一下就没再用送人了。 个人看...
C#中的反射
dll-IL-metadata-反射C# 高级语言(人类语言) -> 编译器(编译) -> DLL/EXE (metadata(元数据)+IL(中间语言)) -> CLR/JIT -> 机器码(CPU 执行) 12345graph LRA(C#高级语言) --> B(编译器)B --> C(DLL / EXE)C --> D(CLR / JIT)D --> E(机器码) 反射反射反射是 .net framework 提供一个访问 metadata 的帮助类库,可以获取信息并使用。 使用创建类型用于测试: 1234567891011121314151617181920212223242526272829303132public class Animal{ public string Name { get; set; } public void Action() { Console.WriteLine("eat"); }...
泛型(Part 2)
泛型约束基类约束可以访问基类的属性和方法,限制以后参数类型只能是该类型或其子类。 1public static void GenericMethod<T>(T t) where T :GenericClass{} 接口约束可以访问接口的属性和方法,限制以后参数类型必须有实现该接口。 1public static void GenericMethod<T>(T t) where T : IGeneric{} 引用类型约束限制参数类型只能是引用类型。 1public static void GenericMethod<T>(T t) where T : class{} 值类型约束限制参数类型只能是值类型。 1public static void GenericMethod<T>(T t) where T : struct{} 无参数构造函数约束限制参数类型可以被无参数构造函数实例化。 1public static void GenericMethod...
泛型 (Part 1)
什么是泛型起始版本为 .net framework 2.0 CLR升级 支持的,非语法糖。为解决针对不同参数类型,有相同的操作行为。 延迟声明:声明方法的时候并没有指定参数的类型,而是等调用的时候指定。 延迟思想:推迟一切可以推迟的。(提高程序的灵活性和扩展性) 打印泛型集合和字典: 12Console.WriteLine(typeof(List<>));Console.WriteLine(typeof(Dictionary<,>)); 输出内容 12System.Collections.Generic.List\`1[T]System.Collections.Generic.Dictionary\`2[TKey,TValue] 编译的时候,类型参数被编译为占位符,程序运行时,JIT即时编译为是类型,所以其性能近似普通方法。 泛型方法 定义:MethodName<T>(T t){} 其中T是类型参数,名称不做限制。 使用:MethodName<int>(123) 或 MethodName(123) 当类型参数可以由编译器...
免责声明
浏览者在访问本站前,请务必阅读本文以下条款并同意以下声明: 华灯博客(以下简称本站)所有原创文章除特别声明外,均采用CC BY-NC-SA 3.0 许可协议。转载请注明出处,否则本站有权依法追究其法律责任。 关于本站的所有留言评论、引用文纯属文字原作者个人观点,与本站观点及立场无关;浏览者在本站发表信息时需要遵守中国现行相应法律,不得发布违法信息。 本站部分内容来自互联网,若无意间侵犯到媒体、公司、企业或个人的知识产权,请及时邮件告知,本站将及时处理。 本站转载的部分内容,如有您未署名的作品,请及时邮件联系,本站会及时为您的作品做署名及相关处理。 以上声明内容的最终解释权归华灯博客。
常用工具或软件推荐
系统工具PE工具:微PE —— 良心PE,情怀PE,没有广告而且很容易得到。 文件搜索:Wox —— 搜索体验比微软小娜好,支持拼音,搭配Everything简直无敌! 文件搜索:Everything —— 将磁盘文件建立索引后,搜索极快。 串口模拟:Virtual Serial Port Driver —— 简单易用,串口开发调试必备。 远程工具:Team Viewer —— 远程体验极好,甩QQ远程N条街。 关闭Win10自动更新: Anti-Windows-Update —— 妈妈再也不怕Win10强制自动更新,而且使用以后仍可以手动更新。 压缩工具:7zip —— 这个必须吹爆,体验最好的压缩解压缩工具没有之一。 云端存储:OneDrive —— 购买Office 365一个最主要原因就是它。 截图录屏:FastStone Capture —— 虽然不是使用体验不是最佳,但是功能最强。兼具截图、录屏、屏幕放大、拾色、标尺等功能,截图可以绘制,录屏可以转gif。 编程工具必备IDE:Visual Studio —— 这个dotnet开发必备,没得解释,宇宙第一IDE不是吹...
我与培训机构的二三事
对于培训机构的态度在武汉读书的时候,由于经常摸鱼,所以专业课学的挺差,印象很深的是一次专业课老师提问,小伙伴们疯狂输出最后自己还是答不上来,印象中只能在电脑前傻笑,现在回想真的像是一个傻子。 有时候也会问自己,为什么自己要来这个地方,选择这么一个专业,但是当时心态和环境是很难看进去书的,本身自学能力又不是特别好,于是开始从网上搜索一些与专业相关的视频来看。 所以,基于这段经历,对于大多数培训机构,我是持积极态度去看待的,因为我自己,就是凭借传智播客在网上的一些公开课视频入门并喜欢上编程。 传智播客印象中,传智播客的.NET培训在当时很热门,而且他们本身提供了所谓基础班的视频,所以当时下载下来,从Hello world!都有一直往后看。 我很认同的一个观点是,培训机构的快餐式教育并不适合所有人,我们可以通过培训机构了解某一个学科,但是真正的熟悉并掌握,还是要靠自己的努力去积累并运用。 在这一点我要感谢培训视频中的那个老师,他在视频中一直强调的也是多看、多写、多实践。 所以我自己在学完基础班视频以后,相信培训班能带领我们入门,可以教我们学习的方式方法,但最终还是要靠自己自学,才能成长...
LIS通讯常见的一些技术名词
前言实验室信息系统仪器接口,从名称上来看,就可以很明确的知道这是一个负责做数据交互的工具。 但是对于刚入门的人来说,面对很多专业的名词,这其实并不简单。 虽然负责接口开发两年了,但是我也不敢说以我粗陋的了解,介绍的一定准确,这里就抛砖引玉,介绍一些专业名词和知识,如有错漏请指点一二。 HIS与LIS这个词既然在看这篇文章,应该都不会陌生,这里摘录一下百度百科对于HIS和LIS的介绍,如果不了解的话可以参考一下: 医院管理和医疗活动中进行信息管理和联机操作的计算机应用系统,英文缩写HIS。HIS是覆盖医院所有业务和业务全过程的信息管理系统。按照学术界公认的MorrisF.Collen所给的定义,应该是:利用电子计算机和通讯设备,为医院所属各部门提供病人诊疗信息 ( Patient Care Information) 和行政管理信息(Administration Information)的收集(Collect)、存储(Store)、处理(Process) 、提取(Retrieve)和数据交换(Communicate) 的能力并满足授权用户 ( Authorized Users)的功...
年龄的计算问题 C# 篇
前言程序中经常会遇到需要计算具体年龄的问题,所以花费了一些时间思考了解决方案,根据网上已有的计算方式,做了简单封装与测试调优,最后封装了一个Age类完成年龄的计算。 单位问题目前在项目中接触到的年龄单位分别是 岁、月、周、天、时、分,但是由于有些系统要求,年龄需要尽量具体,所以这里提供了一个标志枚举。至于具体什么是标志枚举,这里还没有特别做过介绍,所以大家可以搜索枚举与Flags特性了解。以后有机会介绍Logger帮助类的时候再具体展开为大家介绍。 AgeUnit 枚举代码: 1234567891011121314151617181920212223242526272829303132333435363738394041/// <summary>/// 年龄单位/// </summary>[Flags]public enum AgeUnit{ /// <summary> /// 岁 /// </summary> Year = 64, /// <summary> /// 月 ...