- 博客(26)
- 收藏
- 关注
转载 C#中的延迟加载
延迟加载,亦称延迟实例化,延迟初始化等,主要表达的思想是,把对象的创建将会延迟到使用时创建,而不是在对象实例化时创建对象,即用时才加载。这种方式有助于提高于应用程序的性能,避免浪费计算,节省内存的使用等。针对于这种做法,似乎称之为即用即创建更为合适些。 先来看一下在Framework4.0中如何实现延迟加载。 Framework4.0提供了一个包装类 Lazy,可以轻松的实现延
2017-02-28 17:08:10
1765
转载 C# 给枚举定义DescriptionAttribute,把枚举转换为键值对
在C#中,枚举用来定状态值很方便,例如我定义一个叫做Season的枚举public enum Season { Spring = 1, Summer = 2, Autumn = 3, Winter = 4 }枚举名是不能出现空格,()-/等字符我们想把Spring显示为春天,我们要自
2017-02-28 17:07:39
1828
转载 c# base和this在构造函数中的应用
构造函数可以使用 base 关键字来调用基类的构造函数。例如:public class Manager : Employee{ public Manager(int annualSalary) : base(annualSalary) { //Add further instructions here. }}
2017-02-28 17:06:57
451
转载 C# Func<T>、Action<T> 的区别于说明
一、FuncFunc是一个.Net内置的委托。Func,Func是一个.Net内置的泛型委托。FuncFuncFuncFuncFunc它有5种形式,只是参数个数不同;第一个是无参数,但是有返回值;下面是一个简单的普通委托来传方法的示例。1234567891
2017-02-28 17:06:29
5049
转载 C# ArrayList、HashSet、HashTable、List、Dictionary的区别
在C#中,数组由于是固定长度的,所以常常不能满足我们开发的需求。由于这种限制不方便,所以出现了ArrayList。ArrayList、ListArrayList是可变长数组,你可以将任意多的数据Add到ArrayList里面。其内部维护的数组,当长度不足时,会自动扩容为原来的两倍。但是ArrayList也有一个缺点,就是存入ArrayList里面的数据都是Obj
2017-02-28 17:05:57
2337
转载 C# typeof() 和 GetType()区别
1、typeof(x)中的x,必须是具体的类名、类型名称等,不可以是变量名称。 2、GetType()方法继承自Object,所以C#中任何对象都具有GetType()方法,它的作用和typeof()相同,返回Type类型的当前对象的类型。 比如有这样一个变量i: Int32 i = new Int32(); i.GetType()返回值是Int32的类型,但是
2017-02-28 17:05:23
384
转载 C# 动态对象(dynamic)的用法
说到正确用法,那么首先应该指出一个错误用法:常有人会拿var这个关键字来和dynamic做比较。实际上,var和dynamic完全是两个概念,根本不应该放在一起做比较。var实际上是编译期抛给我们的“语法糖”,一旦被编译,编译期会自动匹配var 变量的实际类型,并用实际类型来替换该变量的申明,这看上去就好像我们在编码的时候是用实际类型进行申明的。而dynamic被编译后,实际是一个obje
2017-02-28 17:04:53
6919
转载 C#中的引用传递、值传递
先来说下C#中的数据类型.分值类型和引用类型两大类. 值类型:直接存储数据的值,保存在内存中 引用类型:存储对值的引用,实际上存储的就是一个内存的地址 C#预定义的简单类型,像int,float,bool,char都是值类型,另外enum(枚举),struct(结构)也是值类型 string,数组,自定义的class类、接口、委托和封装就都是引用类型了.其中
2017-02-28 17:04:22
6226
1
转载 C# out和ref之间的区别
首先:两者都是按引用传递的,使用后都将改变原来参数的数值。其次:ref可以把参数的数值传递进函数,但是out是要把参数清空,就是说你无法把一个数值从out传递进去的,out进去后,参数的数值为空,所以你必须初始化一次。这个就是两个的区别,或者说就像有的网友说的,ref是有进有出,out是只出不进。ref(C# 参考)ref 关键字使参数按引用传递。其效果是,当控制权传递回调
2017-02-28 17:03:54
279
转载 C# ToString() 格式化
c# ToString() 格式化字符串 格式化数值:有时,我们可能需要将数值以一定的格式来呈现,就需要对数值进行格式化。我们使用格式字符串指定格式。格式字符串采用以下形式:Axx,其中 A 为格式说明符,指定格式化类型,xx 为精度说明符,控制格式化输出的有效位数或小数位数。 格式说明符 说明 示例 输出 C 货币 2.5.ToString("C") ¥2.50 D 十进制数 2
2017-02-28 17:03:02
365
转载 C# 特性(Attributes)
用以将元数据或声明信息与代码(程序集、类型、方法、属性等)相关联。特性与程序实体相关联后,即可在运行时用反射技术查询特性。例如,在一个方法前标注[Obsolete]特性,则调用该方法时VS则会提示该方法已过期的警告,如下图:又如,在.Net Remoting的远程对象中,如果要调用或传递某个对象,例如类,或者结构,则该类或结构则必须标注[Serializable]特性。还有,我
2017-02-28 17:00:13
6373
转载 c# new关键字的三种用法
三种用法如下:在 C# 中,new 关键字可用作运算符、修饰符或约束。1)new 运算符:用于创建对象和调用构造函数。2)new 修饰符:在用作修饰符时,new 关键字可以隐藏从基类继承的成员。3)new 约束:用于在泛型声明中约束用作类型的参数必须要有Public无参数构造函数。 关于第二种用法看下例:using System;n
2017-02-28 16:59:41
506
转载 C#中的委托
第一次在编程语言中接触委托,感觉很是生疏。敲了几个例子自后,发现其实在面向对象语言中的委托和我们现实生活中是一样的。比如说,小红需要去银行取钱,这里取钱就是小红这一个对象的方法。同样如果是小明,他也可以有取钱这一个方法。如果小红由于一些事情让小明替她去取钱,在这里就是委托了。也就是小明以小红的名义去取钱,执行同样的方法。 在C#中,委托派生于基类System.Delegate,
2017-02-28 16:59:09
356
转载 C#中的继承
在讲解我们的小例子之前,让我们先对继承有个大概的了解。 1、含义:当一个类A能够获取另一个类B中所有非私有的数据和操作的定义作为自己的部分或全部成分时,就称这两个类之间具有继承关系。被继承的类B称为父类或超类、基类,继承了父类或超类的数据和操作的类A称为子类、派生类。 2、继承的语法格式 3、如何用base关键字
2017-02-28 16:58:21
391
转载 C#中的多态
一、首先理解一下什么叫多态: 同一种操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。举一个形象的例子,在我们听音乐会的时候,当指挥发出开始的信号,不同的乐器收到相同的信号,但是他们产生不同的行为:钢琴发出的是钢琴的声音,小号发出的是小号的声响。或者,如果把每个动物当成一个对象,那么他们都有一个方法叫做吃,但是他们却产生不同的行为。
2017-02-28 16:57:56
403
转载 C# sealed的作用
sealed 修饰符表示密封用于类时,表示该类不能再被继承,不能和 abstract 同时使用,因为这两个修饰符在含义上互相排斥用于方法和属性时,表示该方法或属性不能再被重写,必须和 override 关键字一起使用,因为使用 sealed 修饰符的方法或属性必须是基类中的虚成员,所以也不能用于修饰基类的方法和属性通常用于实现第三方类库时不想被客户端继承,或用于没有必要再继
2017-02-28 16:57:12
1850
转载 C# Abstract和Virtual
在C#的学习中,容易混淆virtual方法和abstract方法的使用,现在来讨论一下二者的区别。 它们有一个共同点:二者都是用来修饰父类的,只能作为基类使用,通过覆盖父类的定义,让子类与override的配合重新定义。如果用来修饰方法,前面必须添加public,要不然就会出现编译错误:虚拟方法或抽象方法是不能私有的。毕竟加上virtual或abstract就是让子类重新定义的,而
2017-02-28 16:56:28
299
转载 C# 自动属性
例:public string DisplayName { get; private set; } 称为“自动属性”等同于: private string _DisplayName; public string DisplayName { get{return _DisplayName;}
2017-02-28 16:55:03
533
转载 C# 构造函数
我们知道构造函数分为 不带参构造函数和带参构造函数,不带参构造函数是默认的构造函数,他们在使用过程中有什么样的区别?各自有什么样的作用?概要回答:共同点:都是实例化对象,初始化数据的构造函数与类同名。除了名字外,构造函数的另一个特别之处是没有返回值类型,这与返回值类型为void的函数不同。实例说明:有一个类Monitor它有属性String height;Stri
2017-02-28 16:53:36
376
转载 C# 扩展方法
扩展方法的目的就是为一个现有的类型添加一个方法,现有类型既可以是int,string等数据类型,也可以是自定义的数据类型。扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。例如,我们可以让Random类的所有实例对象拥有一个返回随机bool值的方法。我们不能对Random类本身进行修改,但可以对它进行扩展,如下代码所示://必须是静态类才可以添加扩展方
2017-02-28 16:51:57
255
转载 mvc中OnActionExecuting和 OnAuthorization
执行顺序,OnAuthorization在AuthorizeAttribute特性种,先执行OnAuthorization,然后执行AuthorizeCore函数;OnActionExecuting方法在ActionFilterAttribute特性中,同时存在OnAuthorization和OnActionExecuting,在授权检查完毕之后执行OnActionExecutin
2016-11-12 22:48:06
7812
转载 C#操作xml SelectNodes,SelectSingleNode总是返回NULL原因和解决方案
1. SelectNodes,SelectSingleNode总是返回NULL 下面以一个简单的xml为例:http://www.w3.org/2001/XMLSchema-instance xsi:schemaLocation="http://www.mydomain.com/MyDataFeed https://secure.mydomain/MyDataFeed/my
2016-11-12 22:46:50
1202
转载 .net中split的用法,asp.net字符分隔
我们先来看第一种情况:string str = "aaaa|ccccc|dddd|eeeee|ffff";string[] array = str.Split('|');foreach (string i in array) Response.Write(i+"");所用方法重载如下:在Split方法中需要的是一个 char型的数组,那么我们上面的情况传入的参数就是
2016-11-12 22:44:28
2563
转载 C#操作xml SelectNodes,SelectSingleNode总是返回NULL原因和解决方案
1. SelectNodes,SelectSingleNode总是返回NULL 下面以一个简单的xml为例:http://www.w3.org/2001/XMLSchema-instance xsi:schemaLocation="http://www.mydomain.com/MyDataFeed https://secure.mydomain/MyDataFeed/my
2016-11-12 22:40:49
2548
转载 top.location != self.location
top.location != self.location 就是说当前窗体的url和父窗体的 url是不是相同这个是为了防止别的网站嵌入你的网站的内容(比如用iframe嵌入的你的网站的页面)
2016-04-26 09:52:20
1242
转载 jquery.cookie.js 的配置
一个轻量级的cookie 插件,可以读取、写入、删除 cookie。 jquery.cookie.js 的配置 首先包含jQuery的库文件,在后面包含 jquery.cookie.js 的库文件。 使用方法 1.新添加一个会话 cookie: $.cookie('the_cookie', 'the_value'); 注:当没有指
2016-04-26 09:50:12
201
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人