- 博客(19)
- 收藏
- 关注
转载 CLR via C#(12)-委托Delegate
委托是一个类,它提供了回调函数机制,而且是类型安全的。使用委托可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,提高了程序的可扩展性。使用委托老规矩,先上个例子:结果:几点说明:使用关键字delegate声明委托。委托是类型安全的,定义时其返回值类型、参数个数及参数类型要和想要调用的方法兼容。在这个例子中,通过Int...
2014-04-08 10:35:00
146
转载 CLR via C#(11)-无参属性、索引器
一、 无参属性1. 定义属性 无参属性就是我们最常见的属性方式,在赋值时可以加入一定的逻辑判断。属性的定义其实不复杂,先看个直观的例子:说明:属性要定义名称和类型,且类型不能是void。属性是不能重载的。我们不能定义名称相同、类型不同的两个属性。属性一般需要定义get和set方法来操作类内部的私有支持字段,如上面的_name, _age等。Set方...
2014-04-03 15:19:00
163
转载 CLR via C#(10)-参数
一、 命名参数、可选参数命名参数和可选参数是在Visual C#2010中引入的新特性。 笨地儿我个瓜不兮兮的,今天才知道。可选参数:定义方法时为参数设置默认值,调用该方法时可以省略为某些形参指定实参。命名参数:调用方法时,通过指定参数名称的方式为特定形参指定实参。指定时是根据名称将形参和实参关联,而不是与参数在列表中的位置关联。例如: class Pro...
2014-04-03 14:25:00
105
转载 C#委托的介绍(delegate、Action、Func、predicate)
委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递。事件是一种特殊的委托。 1.委托的声明 (1). delegate delegate我们常用到的一种声明 Delegate至少0个参数,至多32个参数,可以无返回值,也可以指定返回值类型。 例:public delegate int MethodtDele...
2014-04-03 11:09:00
104
转载 MVC3使用Unity实现接口自动注册
关于依赖注入 控制反转(Inversion of Control,英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题。应用控制反转,对象在被创建的时候,由一个调控系统内所 有对象的外界实体,将其所依赖的对象的引用,传递给它。也可以说,依赖被注入到对象中。所以,控制反转是,关于一个对象如何获取他所依赖的对象的引用,这 个责任的反转。 控制反转还有一个...
2014-04-02 15:51:00
155
转载 CLR via C#(09)-扩展方法
对于一些现成的类,如果我们想添加一些新的方法来完善功能,但是不想改变已有的封装,也不想使用派生类,那么该怎么办呢?这里我们可以使用扩展方法。一见钟情--初识扩展扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。我们首先来看个例子,有个直观的认识。一个现有的类User:public class User {...
2014-04-02 15:35:00
101
转载 CLR via C#(08)-操作符
对于操作符,我们并不陌生,例如+,-,*,%等二元操作符,以及++,!等一元操作符。但是对于非基元类型,我们需要通过一些自定义方法才能使用这些操作符。今天主要和大家分享关于操作符重载和转换操作符的知识。一、操作符重载方法CLR并不知道操作符,操作符重载对于它来说只是一些方法而已。但是CLR规定了语言应该如何公开操作符重载,每种编程语言自行决定是否支持操作符重载。定义操作符...
2014-04-02 14:48:00
109
转载 CLR via C#(07)-静态类,分部类
静态类是一些不能实例化的类,它的作用是将一些相关的成员组合到一起,像我们常见的Math, Console等。静态类由static关键字标识,静态类成员也只能是static类型。Static关键字只能用于修饰类,不能修饰值类型。C#编译器对静态类的限制:1. 基类只能为System.Object。因为继承是针对对象而言的,静态类不能创建实例,所以从其他...
2014-04-02 14:36:00
103
转载 CLR via C#(06)- 构造器
对于构造器,大家应该都不陌生,它主要是用来进行初始化状态的。包括实例构造器和类构造器两种,先给大家看个实际的例子。class Dog : Animal { privatestring _name; privateint _age; publicstring Name//属性 {...
2014-04-02 14:28:00
114
转载 VS2010几款超赞的扩展辅助工具总结
JScript Editor Extensions——折叠JavaScript代码由于最近写的JavaScript稍微多了一点,然后在查看的时候就很不方便,总是要拖动滚动条来查找。于是就想着这JavaScript代码能否像在C#代码一样可折叠呢?这款工具可直接通过VS的扩展管理器中进行下载,如下所示:下载安装完之后,您只要重启一下VS就可以查看到效果了,查看效果如下:...
2014-03-31 15:28:00
212
转载 C#面试题-简单
1.简述private、protected、public、internal修饰符的访问权限。 private:私有成员,在类的内部才可以访问。 protected:保护成员,该类内部和继承类中可以访问。 public:公共成员,完全公开,没有访问限制。 internal:在同一个程序集内可以访问。2.private 私有成员会被继承吗? 会,但是不能访问...
2014-03-31 11:13:00
366
转载 CLR via C#(05)- 访问限定、数据成员
今天跟大家分享一下关于访问限定和数据成员的知识。主要包括以下两点:Abstract, sealed, virtual, new, override怎么用?Const 和 readonly好像都表示不能改变的值,有什么区别呢?一、 访问限定类和方法有一些访问限定符,如private,public等。除此之外,还包含一些预定义特性。下面几个你都知道吗?1. 类...
2014-03-25 10:20:00
116
转载 CLR via C#(04)- 本是同根生
说起.NET中的类,本是同根生,一点不为过。因为CLR要求所有类都要继承自System.Object。所有对象都必须提供一组通用操作,包括对象的等值性、唯一性、散列码以及克隆。一、等值性——Equals()方法 有时候我们需要比较两个对象是否相等,比如在一个ArrayList中进行排序查找等操作时。System.Object提供了Equals()虚方法:cl...
2014-03-25 09:02:00
137
转载 CLR via C#(03)- 对象创建和类型转换
本节内容不太复杂,主要是介绍类的实例创建过程,以及类型之间相互转换的知识。一、 创建对象CLR要求用new操作符创建对象,这个操作符在编译时产生的IL指令为newobj。例如:Student XiaoJing=new Student(“XiaoJing”,”1986”);那么在创建过程中,究竟发生了什么事呢?分配空间。在托管堆中分配该类所需要字节数的内...
2014-03-25 08:53:00
100
转载 CLR via C#(02)-基元类型、引用类型、值类型
一、 基元类型编译器能够直接支持的数据类型叫做基元类型。例如int, string等。基元类型和.NET框架类库FCL存在着直接的映射关系。string和String?面试的时候曾经被问到过这个问题,C#中的基元类型string实际上对应了System.String(FCL)类型,所以两者使用的时候没有什么不同。类型转换编译器能够在基元类型之间进行显式或隐式转换。如果...
2014-03-21 08:48:00
115
转载 CLR via C#(01)-.NET平台下代码是怎么跑起来的
1. 源代码编译为托管模块程序在.NET框架下运行,首先要将源代码编译为托管模块。CLR是一个可以被多种语言所使用的运行时,它的很多特性可以用于所有面向它的开发语言。微软开发了多种语言的编译器,编译时会使用相应的编译器进行语法检查器和代码分析器,在编译完成后都生成一个托管模块。托管模块?托管模块是一个需要CLR环境才能执行的标准windows PE文件,包含IL和元数据以...
2014-03-21 08:43:00
114
转载 C#实现PDF的另存为效果
今天跟大家分享一个实现PDF另存为的效果,是调用Acrobat SDK的JavaScript实现的。添加项目引用实现方法 1 /// <summary> 2 /// PDF另存为效果 3 /// </summary> 4 /// <param name="fi...
2014-03-17 09:15:00
363
转载 C#扫描图片去黑边
最近项目遇到一个问题,需要对扫描出来的图片进行去除黑边。百度下没有找到处理黑边的源码,无奈自己尝试写了这个方法。 1 /// <summary> 2 /// 自动去除图像扫描黑边 3 /// </summary> 4 /// <param name="fileNa...
2014-03-14 14:27:00
923
转载 C#文档图片自动纠偏
最近找到一个不错的文档图片自动纠偏跟大家分享一下。纠偏算法: 1 public class Deskew 2 { 3 // Representation of a line in the image. 4 private class HougLine 5 { 6 ...
2014-03-14 14:11:00
866
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人