- 博客(14)
- 资源 (4)
- 收藏
- 关注
原创 C#高级功能(四)扩展方法和索引
扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。扩展方法被定义为静态方法,但它们是通过实例方法语法进行调用的。 它们的第一个参数指定该方法作用于哪个类型,并且该参数以 this 修饰符为前缀。 仅当你使用 using 指令将命名空间显式导入到源代码中之后,扩展方法才位于范...
2018-09-22 17:53:53 242
原创 C#进阶(三)Action、Func,Tuple
Action和Func委托实际上就是一个.NET Framework预定义的委托,3.5引入的特性。基本涵盖了所有常用的委托,所以一般不用用户重新声明。Action系列泛型委托,是没有返回参数的委托,最多可以有16参数,也可以没有参数;Func系列的委托是有返回值的委托,最多可以有16个参数;元组是C# 4.0引入的一个新特性,编写的时候需要基于.NET Framework 4.0或者更高版本。元...
2018-09-22 17:48:37 229
原创 C# 进阶 (二)LINQ和Enumerable 类
介绍LINQ之前先介绍一下枚举器Iterator:枚举器如果你正在创建一个表现和行为都类似于集合的类,允许类的用户使用foreach语句对集合中的成员进行枚举将会是很方便的。我们将以创建一个简单化的List Box作为开始,它将包含一个8字符串的数组和一个整型,这个整型用于记录数组中已经添加了多少字符串。构造函数将对数组进行初始化并使用传递进来的参数填充它。/// <summ...
2018-09-22 17:43:40 831
原创 C# 进阶(一)Lambda 表达式
Lambda 表达式是一种可用于创建委托或表达式目录树类型的匿名函数。通过使用 lambda 表达式,可以写入可作为参数传递或作为函数调用值返回的本地函数。 Lambda 表达式对于编写 LINQ 查询表达式特别有用。若要创建 Lambda 表达式,需要在 Lambda 运算符 => 左侧指定输入参数(如果有),然后在另一侧输入表达式或语句块。例如,lambda 表达式 x => x ...
2018-09-22 17:36:49 276
原创 action和func的使用
以前我都是通过定义一个delegate来写委托的,但是最近看一些外国人写的源码都是用action和func方式来写,当时感觉对这很陌生所以看起源码也觉得陌生,所以我就花费时间来学习下这两种方式,然后发现确实代码简洁了不少。这两种方式我们也可以去实践的过程去慢慢运用。先说一下委托:模拟一下场景:小明最近学习情绪高涨,以前买的书已经满足不了欲望,打算去买本(一个程序员的自我修养)。可是呢以前总...
2018-09-22 16:36:42 183
转载 C# 路径
C#最常使用的相对路径是从当前程序所在路径开始相对寻径,找到要找的路径,即以下两种最简单的方式: 1. 程序根目录.(即exe程序所在路径)//下面两个路径是等价的,都是exe程序所在路径(通常是bin\Debug\下)的Data文件夹下的test文本文件string Path1 = @".\Data\test.txt"; string Path2 = @"Data\tes...
2018-09-18 14:39:24 1025
转载 c#中抽象类(abstract)和接口(interface)的相同点与区别
相同点:1、都可以被继承 2、都不能被实例化 3、都可以包含方法声明 4、派生类必须实现未实现的方法区别:1、抽象基类可以定义字段、属性、方法实现。接口只能定义属性、索引器、事件、和方法声明,不能包含字段。 2、抽象类是一个不完整的类,需要进一步细化,而接口是一个行为规范。微软的自定义接口总是后带able字段,证明其是表述一类“我能做。。。” 3、接口可以被多重实现,抽象类只能...
2018-09-14 11:21:07 192
转载 C# 依赖注入(二)
2 探究依赖注入2.1 故事的启迪我们现在静下心来,再回味一下刚才的故事。因为,这个故事里面隐藏着依赖注入的出现原因。我说过不只一次,想真正认清一个事物,不能只看“它是什么?什么样子?”,而应该先弄清楚“它是怎么来的?是什么样的需求和背景促使了它的诞生?它被创造出来是做什么用的?”。回想上面的故事。刚开始,主要需求是一个打怪的功能。小李做了一个初步面向对象的设计:抽取领域场景中的实体(...
2018-09-11 14:33:42 325
转载 C# 依赖注入(一)
1 IGame游戏公司的故事1.1 讨论会话说有一个叫IGame的游戏公司,正在开发一款ARPG游戏(动作&角色扮演类游戏,如魔兽世界、梦幻西游这一类的游戏)。一般这类游戏都有一个基本的功能,就是打怪(玩家攻击怪物,借此获得经验、虚拟货币和虚拟装备),并且根据玩家角色所装备的武器不同,攻击效果也不同。这天,IGame公司的开发小组正在开会对打怪功能中的某一个功能点如何实现进行讨论,...
2018-09-11 14:32:03 1435
翻译 国家商用密码(2)基于SM2的软件授权码生成及校验
将公开密钥算法作为软件注册算法的好处是Cracker很难通过跟踪验证算法得到注册机。下面,将介绍使用SM2国密算法进行软件注册的方法。生成授权码选择SM2椭圆曲线参数(P,a,b,N,Gx,Gy) 用随机数发生器产生随机数r∈[1,n-1] 计算椭圆曲线点R=[r]G=(XR,YR) 计算哈希值h=SM3(用户名 ∥ XR ∥ YR) 计算序列号s≡(r - h * d) mod ...
2018-09-10 09:58:57 1355
翻译 国家商用密码(1)开放动态库及演示程序
开放动态库支持中国商用密码算法:SM2、SM3、SM4,同时也支持AES对称加密算法。下载地址:国家商用密码算法开放动态库及演示程序C#语言版国家商用密码算法开放动态库及演示程序Java语言版当前提供的语言版本:C#语言版本,其开发环境为:Visual Studio V2013、.NET Framework 4.5Java语言版本,其开发环境为:NetBeans 8.0...
2018-09-10 09:57:41 1086
转载 USB设备枚举(一)DeviceIoControl的PInvoke
/* ----------------------------------------------------------文件名称:DeviceIoControl.cs开发环境: Visual Studio V2010 .NET Framework 4 Client Profile版本历史: V1.0 2011年10月10日 实现...
2018-09-10 09:43:39 455
转载 WPF打印票据
WPF打印票据或者是打印普通纸张区别不大,只是说打印票据要把需要打的内容摆放好位置,搞定缩放比例,就可以放入票据直接打印了。那么关键点就是3个:1、使用WPF提供的什么类、什么方法来执行打印2、如何摆放位置3、如何搞定缩放比例1、使用WPF提供的什么类、什么方法来执行打印这个问题很容易解决,搜索下WPF打印或WPF Print,就能找到示例代码。那么我用的是PrintDialog的Pr...
2018-09-07 17:18:19 919
转载 HBuilder打包App方法
HBuilder打包App方法HBuilder是DCloud(数字天堂)推出的一款支持HTML5的Web开发IDE。该软件既可以支持web代码编写,也可以将已经编写好的项目代码打包为手机APP。HBuilder提供的打包有云端打包和本地打包两种,云端打包的特点是DCloud官方配置好了原生的打包环境,可以把HTML等文件编译为原生安装包。1,下载HBuilder,注册并登陆。首先...
2018-09-06 09:58:00 287
depends22_x86.rar
2020-01-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人