摘要:
1.泛型的概念 所谓泛型,即通过参数化类型来实现在同一份代码上操作多种数据类型。泛型编程是一种编程范式,它利用“参数化类型”将类型抽象化,从而实现更为灵活的复用。 2. .net提供的泛型 2.1可空类型System.Nullable<T> 简单类型和引用类型的一个区别是简单类型必须包含一个值,引用 阅读全文
随笔档案-2019年03月
18. C# 转换
2019-03-27 11:48 by 若藜520, 247 阅读, 收藏, 编辑
摘要:
1.重载转换运算符 到目前为止,我们使用的类型转换,包括隐式类型转换和显示类型转换都是在两个相关的类中进行的,这几个类要么是简单类型之间的转换,比如int 隐式转换成double,要么是有继承关系,或者是实现了接口。假如我们要在两个不相关的类之间进行转换,可以重载转换运算符。 2.as运算符 as运 阅读全文
17.比较
2019-03-26 18:25 by 若藜520, 282 阅读, 收藏, 编辑
摘要:
1.类型比较 使用GetType()和typeof()比较类型 1.1.封箱和拆箱 封箱是指把值类型转换为System.Object类型,或者转换为由值类型实现的接口。 注:以这种方式封装而创建的对象包含的是值类型的一个副本的引用,而不是包含源值类型的引用 如果是把引用类型的对象赋值给Object 阅读全文
HttpResponse输出文件
2019-03-21 16:12 by 若藜520, 5531 阅读, 收藏, 编辑
摘要:
压缩用到的 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.IO; using ICSharpCode.SharpZipLib.Zip; using S 阅读全文
16.深度复制和浅度复制
2019-03-20 15:41 by 若藜520, 320 阅读, 收藏, 编辑
摘要:
1.浅度复制 使用System.Object类的MemberwiseClone()方法可以进行浅度复制,该方法的作用通过创建一个当前类的新实例,并简单把其成员变量赋值给新实例的成员变量以达到复制当前对象的效果。这样复制的结果是新对象和原对象不是同一对象,但是其引用类型的成员和原对象是同一个引用。 2 阅读全文
15.IEnumerable和IEnumerator
2019-03-20 12:20 by 若藜520, 249 阅读, 收藏, 编辑
摘要:
先说IEnumerable,我们每天用的foreach你真的懂它吗? 阅读目录 自己实现迭代器 yield的使用 怎样高性能的随机取IEnumerable中的值 阅读目录 自己实现迭代器 yield的使用 怎样高性能的随机取IEnumerable中的值 自己实现迭代器 yield的使用 怎样高性能的 阅读全文
14.集合
2019-03-20 11:26 by 若藜520, 208 阅读, 收藏, 编辑
摘要:
1.System.Collections命名空间中的几个接口 1)IEnumerable可迭代集合中的项; 2)ICollection(继承于IEnumerable)可以获取集合中项的个数,并把项复制到一个简单的数组中; 3)IList(继承于IEnumerable和ICollection)提供了集 阅读全文
C# xml数组的序列和反序列化
2019-03-15 18:37 by 若藜520, 3813 阅读, 收藏, 编辑
摘要:
先来看xml 这个xml包含多个Person对象,每个Person对象又包含一个Books对象和多个book对象,反序列化XML时关键是看怎么理解xml的结构,理解正确了就很好构造对应的类,理解错了可能就陷入坑里。 首先root是整个文件的根节点,它是由多个Person组成的。 再看Person对象 阅读全文
13.C# 定义类成员
2019-03-14 12:14 by 若藜520, 1273 阅读, 收藏, 编辑
摘要:
1.定义字段 字段可以用readonly修饰,表示该字段只能在构造函数中赋值,还可以用static表示该字段是静态字段 2.定义属性 属性拥有两个类似函数的块,称为访问器,可以忽略其中一个访问器来创建只读或只写属性。访问器可以拥有自己的访问修饰符,但访问性不能高于它所属的属性。属性可以用abstra 阅读全文
jquery中attr和prop的区别
2019-03-14 10:36 by 若藜520, 237 阅读, 收藏, 编辑
摘要:
转自https://www.cnblogs.com/Showshare/p/different-between-attr-and-prop.html 在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这些问题就出现了。 关于它们两个的区别,网 阅读全文
jq、js中判断checkbox是否选中
2019-03-14 10:34 by 若藜520, 2956 阅读, 收藏, 编辑
摘要:
最近在开发项目时用到checkbox复选框,其中遇到一个问题:在JQ中如何判断checkbox是否被选中呢?之前用JQ获取元素的属性用的都是attr(),但用在checkbox上却没有用,原因何在??? 1、JS中判断checkbox是否被选中 对于在js中来判断checkbox是否被选中很简单,举 阅读全文
12.C# 接口和抽象类的区别
2019-03-12 12:02 by 若藜520, 1885 阅读, 收藏, 编辑
摘要:
1.抽象类 声明方法的存在而不去实现它的类叫做抽象类,抽象类用abstract关键字声明。抽象类主要用来规定某些类的基本特征,继承它的子类必须实现抽象类的抽象成员,否则这个子类也为抽象类。 抽象类的实现 子类继承抽象类,需要override抽象类中的抽象属性和抽象方法,如果有未override的,则 阅读全文
11.c#类的成员初始化顺序
2019-03-11 16:05 by 若藜520, 1039 阅读, 收藏, 编辑
摘要:
转自http://www.cnblogs.com/siceblue/archive/2009/01/15/1376430.html C#作为一种纯面向对象的话言,为它编写的整个代码里面到处都离不开对象。一个对象的完整的生命周期是从开始分配空间到初始化,到使用,最后是销毁,使用的资源被回收。要想真正写 阅读全文
10.C# 构造函数
2019-03-11 15:53 by 若藜520, 296 阅读, 收藏, 编辑
摘要:
1.构造函数 构造函数是用来初始化对象的,只能由new运算符调用。构造函数与类同名,没有返回值,不能用void修饰,可以有public和private两种修饰符,当用private修饰时外界不能访问到这个构造函数。 C#有一个无参的默认构造函数,如果需要做特别的初始化可以自己添加构造函数,如 2.构 阅读全文
9.C# 类
2019-03-07 16:54 by 若藜520, 251 阅读, 收藏, 编辑
摘要:
1.类定义格式 【访问修饰符】class 类名 【:父类名,接口名,接口名】 { //类成员 } 类的访问修饰符有public、internal两个,没有标明访问修饰符默认为internal,被internal修饰的类只能在当前项目中访问,即只能在同一个程序集中访问;public 修饰的类可以被其他 阅读全文
8.C#友元程序集----可访问性相关
2019-03-06 16:01 by 若藜520, 329 阅读, 收藏, 编辑
摘要:
在一个团队或者公司中,一个人开发出来的程序集中的类的可见性有public,private和internal, public:对所有程序集可见,就是说如果拿到程序集.DLL文件,那么类就被公开了。 private:对程序集内部可见,就是自己定义来自己用,不公开。 internal:对友元程序集和内部可 阅读全文
7.C# 多态的实现
2019-03-06 15:40 by 若藜520, 250 阅读, 收藏, 编辑
摘要:
C# 多态的实现 封装、继承、多态,面向对象的三大特性,前两项理解相对容易,但要理解多态,特别是深入的了解,对于初学者而言可能就会有一定困难了。我一直认为学习OO的最好方法就是结合实践,封装、继承在实际工作中的应用随处可见,但多态呢?也许未必,可能不经意间用到也不会把它跟“多态”这个词对应起来。在此 阅读全文
4.C#虚方法virtual详解
2019-03-06 11:22 by 若藜520, 255 阅读, 收藏, 编辑
摘要:
C#虚方法virtual详解 在C++、Java等众多OOP语言里都可以看到virtual的身影,而C#作为一个完全面向对象的语言当然也不例外。 虚拟函数从C#的程序编译的角度来看,它和其它一般的函数有什么区别呢?一般函数在编译时就静态地编译到了执行文件中,其相对地址在程序运行期间是不发生变化的,也 阅读全文
3.C#的访问权限修饰符
2019-03-05 18:04 by 若藜520, 1094 阅读, 收藏, 编辑
摘要:
C#里类及类成员的修饰符有以下五个如下:public 公开 类及类成员的修饰符 对访问成员没有级别限制private 私有 类成员的修饰符 只能在类的内部访问protected 受保护的 类成员的修饰符 只能在该类和该类的派生类中访问,不管该派生类和基类是否在同一程序集中internal 内部的 类 阅读全文
2.静态类成员、静态构造函数、静态类
2019-03-05 17:07 by 若藜520, 844 阅读, 收藏, 编辑
摘要:
2.1 静态类成员和实例类成员 类成员分为成员变量和成员函数两种,有static修饰的类成员称为静态类成员,分为静态成员变量(类变量或类成员变量)和静态成员函数(类方法),没有static修饰的分别称为实例变量和实例方法。 类变量是被所有对象共享的,即所有对象的这个类变量是分配到同一个内存空间的,一 阅读全文
1.面向对象的基本概念
2019-03-04 20:47 by 若藜520, 1035 阅读, 收藏, 编辑
摘要:
什么是面向对象编程: 面向对象编程是一种新的程序设计技术,相对于面相过程的程序设计以研究问题的解决过程为主体,面向对象编程以对象和类为主体,基本组成要素是类和对象。 什么是类: 类是具有相同特征的的对象的抽象,是一种数据类型。 什么是对象: 广泛的说对象是客观实体的映射,在程序设计上对象是类的具体实 阅读全文
6.C# 释放非托管资源2
2019-03-04 15:44 by 若藜520, 246 阅读, 收藏, 编辑
摘要:
C# 释放非托管资源 C#中资源分为托管资源和非托管资源。 托管资源由垃圾回收器控制如何释放,不需要程序员过多的考虑(当然也程序员也可以自己释放)。 非托管资源需要自己编写代码来释放。那么编写好的释放非托管资源的代码(释非代码)由谁来调用呢。有两种实现方式: 一 将释非代码放到构造函数析构函数中,由 阅读全文
5.C#释放非托管资源1
2019-03-04 15:41 by 若藜520, 402 阅读, 收藏, 编辑
摘要:
释放非托管资源在介绍释放非托管资源的时候,我觉得有必要先来认识一下啥叫非托管资源,既然有非托管资源,肯定有托管资源. 托管资源指的是.net可以自棕进行回收的资源,主要是指托管堆上分配的内存资源.托管资源的回收工作是不需要人工干预的,有.net运行库在合适的调用垃圾回收器进行回收. 非托管资源指的是 阅读全文