11 2011 档案
摘要:Linq这个词对于我们现在来说一点都不陌生了,因为它已经问世了好长时间了,而很多人都说Entity是Linq的完全版本,其实也不能完全这么说。各有各的优势。那么什么是Linq,它的全称是Language Integrated Query, 语言集成查询。那么什么是语言集成查询。 语言集成查询就是以相同的查询语法,查询,更新不同的数据源。 查询就是从数据源检索数据的表达式,我们知道,不同的数据源有不同的查询方式,我们查询SQL可以拼接SQL语句,我们查询XML需要使用XML的查询方式,我们查询集合有集合的查询方式,如果我们的数据源有1000种,或者10000种呢?我们就必须学习不同的10...
阅读全文
摘要:从2.0起我们一直就在谈论泛型,那么什么是泛型,泛型有什么好处,与泛型相关的概念又该怎么使用,比如泛型方法,泛型委托。这一篇我会全面的介绍泛型。 那么首先我们必须搞清楚什么是泛型,泛型其实也是一种类型,跟我们使用的int,string一样都是.net的类型。泛型其实就是一个模板类型,万能类型。它允许我们在设计类的时候使用一个类型空白。预留一个类型。等到我们使用这个类的时候,我们可以使用特定的类型来替换掉我们预留的这个类型。这就是泛型。 那么这样使用的好处有什么呢? 1,类型安全性 2,性能提高 3,代码重用 4,扩展性 为什么会有这几个好处,我们来解析一下。 在我们讨论泛型...
阅读全文
摘要:在.net中有几种比较相等的方法 object的静态ReferenceEquals() object的静态Equals() object的示例Equals() 运算符== 下面介绍一下他们的区别和用法。 ReferenceEquals ReferenceEquals用于比较引用类型的引用是是否指向同一个对象。它只能比较引用类型。当把值类型传给它的时候永远都会返回false,因为值类型作为参数的时候首先会装箱,经过装箱的值类型哪怕是指相等,但是也是两个不同的对象,所以变量是指向不同的对象,所以永远返回false。 int x = 10; ...
阅读全文
摘要:类型转换,就是在不同的类型之间转换数据,.netframerwork是强类型的。什么是强类型,强类型就是在定义变量的时候必须显示指定变量的类型。但是现在也有了匿名类型var。现在我们不谈var。所以这里说的framerwork还是强类型的,强类型在安全性方面是有很大好处的。因为我们只能以某种方式使用某种变量。有时候我们需要在类型之间做一写转换,比如把数值类型转换为string,或者把string转换为数值。这里就介绍一下类型的转换。 类型的转换分位两种,隐式转换和显示转换。隐式转换是系统自动转换的。 隐式转换 那么隐式转换在什么时候会发生呢?在我们转换的时候,只要数据不会发生任何变化...
阅读全文
摘要:其实我正则表达式我正在学习,所以这里不过多的介绍正则,等我学到有一定的心得之后再介绍正则。这里我只是介绍在.netframerwork中怎么使用正则。 要在framerwork中使用正则,需要导入命名空间System.Text.RegularExpressions,类Regex可以提供正则的一些功能,这里的正则介绍得计较简单。等以后我再详细的介绍正则表达式和.netframerwork中正则的一些信息。 我们首先来看一个例子。电子邮件的验证,这次用的Winfrom,界面很简单一个一个文本框,一个按钮,按钮里面的逻辑验证输入的是否符合电子邮件的格式。 验证按钮里面的逻辑也是很简单的 p...
阅读全文
摘要:我们不管学习任何语言,字符串可以说是用得最多的对象之一。字符串在很多人看是很简单的,但是就算是简单我这里也系统的概括一下。 这里我要介绍两点 1,怎么样使用字符串 2,字符串的格式化 首先我们看看怎么使用字符串 字符串的使用相信大家都很清楚,定义,赋值都是很简单的。string oString = "EdrickLiu"; 但是这里我们要清楚这么一行代码的实际含义。首先string实际上是System.String的等量声明,这里我们实际上是声明了一个System.String类型的引用。oString引用指向托管堆上的一个String实例。所以string是引用类型。这里
阅读全文
摘要:在C#中,我们有各种预定义的类型可以使用,比如int,int实际上是System.Int32的一个实例。它的取值有一个范围。如果我们的int从某个地方接收到一个null,比如数据库,或者任何其他地方。那么赋值肯定会失败。而且会产生编译错误或者运行时错误。当然我们可以处理这样的异常或者做一个些防范。但是我们有一种更好的选择,就是让我们的基本数据类型除了可以取正常范围的值之外还能为null,这样就不会产生异常,我们只需要在要使用这个值的时候检测一下值是否非空就可以使用了。那么这个类型就是System.Nullable<T>.简写为T?.T为我们要使用的类型,但是不能为引用类型,事实上也
阅读全文
摘要:关于C#的基本运算符其实不需要介绍太多,但是这里还是有几个值得我们注意一下的运算符,多的先不说,先贴上C#中所有的运算符 其中的sizeof和寻址运算符我们不需要了解但多,因为CLR帮我们做了,.netframerwork是类型安全的。 下面介绍几个我们需要注意的运算符。 增量运算符和减量运算符 ++,-- 我们来看一个例子,X++和++X的区别 X++和++X可以用做表达式,那么什么是表达式,表达式就是可以计算且结果为单个值、对象、方法或命名空间的代码片段,也可以用作代码块。当用作代码块的时候,就是他们单独占一行的时候,X++跟++X的效果是一样的,都是X...
阅读全文
摘要:我们可以使用foreach迭代数组,集合。那么为什么数组和集合可以使用foreach迭代而别的类型却不行呢?foreach的内部机制又是什么,这里我来说一下枚举器。 很多教材上说,使用foreach迭代必须满足什么条件,很多人就是一句话,实现IEumerable接口。其实不是完全正确。实现IEumerable接口只是第一步。第二步是要实现GetEumerator()方法,这个方法需要返回IEumerator接口。其实真正起作用的是GetEumerator()和IEumerator接口。原因是,C#中的foreach最后在IL代码中不会编译为foreach,而是会把foreach转化为IE...
阅读全文
摘要:我们可以使用数组来处理一组相同的类型,我们可以根据索引来获取每一个元素。那么既然是这样,我们为什么还要使用索引器呢?我们觉得有以下几点。 1,如果我们的类的意图本身就是想表示现实中的一组事物。本身就是一个群集的概念,那么我们就可以封装数组或集合成为索引器,让我们的类看上去像一个整体概念。这样有助与我们理解类的意图。使我们的类专注于表现群集的概念。这会使我们的类有数组的表现形式。更加形象化。还使其他开发人员能够更加直观地理解类及其用途。 2,使用数组有时候要依托于类里的数组。而索引器却是积极的表现类的意图,可以直接使用类索引 3,我们可以很轻易的使用别的类型来索引我们自己的类,当然数组...
阅读全文
摘要:在.netframerwork中数组是一种数据结构,它包含若干同一类型的元素。就好像我们可以把多个相同类型的若干元素放在一个容器中供我们使用。数组就好像装鸡蛋的格子,里面的元素就好像是鸡蛋。数值数组的默认值为0,引用元素的默认值为null。数组的大小是不可变的,一旦定义了大小就不可变,除非我们克隆出另外一个数组。声明一个数组是很简单的,声明数组,只需要先定义数组中元素的类型,然后后面加一个方括号 int[] arr; 初始化数组也是很简单的,可以有以下的几种方式。 arr = new int[4]; 由于数组是引用类型,所以使用new关键字初始化,然后指定数组的大小。也可以把他们写...
阅读全文
摘要:在介绍序列化的时候我们首先要搞清楚什么是序列化以及为什么要使用序列化。 序列化的官方定义是:将对象状态转换为可保持或可传输的形式的过程。首先,什么是对象状态,对象状态就是对象在某个时刻具有的特征,其实简单一点就是这个对象。那么什么是可保持?我们知道,对象是有生存期的,一旦对象过了生存期我们就无法访问到这个对象。可保持的意思就是打破对象的生存期。使对象具有持久的访问方式。典型的可保持就是我们的磁盘保存了。那么什么是可传输?传输的是意思就是在不同的地点之间传递某个物品。而我们这里就是在不同的程序,组件之间传递某个对象。现在最后一个问题?为什么要使用序列化。其实一个话就可以概述,就是在不同...
阅读全文
摘要:在开始介绍ASP.NET系列文章的时候,我觉得应该先谈谈HTTP,虽然ASP.NET对http做了大量的封装,我们在不知道http的情况下一样可以构建WEB应用程序,但是我觉得在大致的了解http后更有益于我们理解web程序的原诶理。 http的历史我就不介绍了,这里只是简单的介绍http,要想详细了解可以查阅其它关于http的资料 http属于TCP/IP的顶层,属于应用层协议。现在的版本为1.1,http的原理为:用户点击页面,浏览器把请求发送给服务器。服务器接受请求,处理请求后响应给客户端。这样就完成了典型的:请求----响应。所以http是状态的协议。服务器并不存储任何有关客户...
阅读全文
摘要:介绍DOM就先必须搞清楚什么是DOM。DOM的中文意思是“文档对象模型”.我理解的文档对象模型是“按照元素在HTML中的层次,深度映射一个对应HTML元素与对象的到具有相同层次与深度的对象树模型”然后我们就可以通过这个模型来访问对象操作HTML元素。仅仅是我个人的理解,不代表一定正确。DOM同样适用于别的标记语言,如XML(其实也是从XML起源的),适用DOM有一点是非常重要的,各个浏览器对DOM的支持程度是不一样的使用DOM
阅读全文
摘要:严格来说,javascript并不是真正意义上的面向对象的语言,但是我们在编写javascript的时候仍然有对象一说,javascript虽然算不上真正意义上的面向对象,但是我们依然可以使用面向对象的编程方式,这里紧紧是编程方式与习惯。我本人是不喜欢用javascript做面向对象的复杂操作的。但是在javascript里仍然还是存在对象的,应该说javascript里一切都是对象。在javascript中有3种对象。面向对象的3大特征,继承,封装,多态。javascript其实可以做到模拟这三大特征,以后有时间再讲讲,现在我们先看看javascript中的三种对象吧1,本地对象本地对象:.
阅读全文
摘要:web表单是为了实现客户端与服务器的通信,即像服务器提交数据。一般,虽然在ASP.NET中的实现方式与传统的实现方式不太一样。但是这里还是讲一讲,方便我们在javascript中来操作这些元素。提起web表单就会让人想起<form><input><select>等元素。对,其实表单就是这些元素定义的,下面我们来看看表单的组成元素HTML表单是通过<form>元素来定义的,它有以下特性method---发送请求的方式,post或get。post和get的区别在AJAX的文章里又提到action ---表示表单要提交到的地址URLenctype --
阅读全文

浙公网安备 33010602011771号