文章分类 -  .Net技术

.Net技术知识学习
摘要:我们搞程序的多多少少都了解点算法。总体来讲,算法是什么?算法就是“时间”和“空间”的互换策略。我们常常考究一个算法的时间复杂度或空间复杂度,如果我们有绝对足够的时间或空间,那么算法就不需要了,可惜这种条件是不存在的,只是在某些情况下相对来说我们不用去考虑其中一个。今天我们讨论的“缓存”,自然就是“用空间换时间”的算法。 缓存就是把一些数据暂时存放于某些地方,可能是内存,也有可能硬盘。总之,目的就是为了避免某些耗时的操作。我们常见的耗时的操作,比如数据库的查询、一些数据的计算结果,或者是为了减轻服务器的压力。其实减轻压力也是因查询或计算,虽然短耗时,但操作很频繁,累加起来也很长,造成严重排队.. 阅读全文
posted @ 2013-04-22 16:43 Skysper 阅读(121) 评论(0) 推荐(0)
摘要:刚开始学习C#的时候,就听说CLR对于String类有一种特别的内存管理机制:有时候,明明声明了两个String类的对象,但是他们偏偏却指向同一个实例。如下:String s1 ="Hello";String s2 ="Hello"; //s2和s1的实际值都是Hellobool same = (object) s1 == (object) s2;//这里比较s1、s2是否引用了同一个对象实例//所以不能写作bool same = s1 == s2; //因为String类重载了==操作符来比较String对象包含的实际值 这里的same会被赋值为... 阅读全文
posted @ 2013-04-22 15:46 Skysper 阅读(172) 评论(0) 推荐(0)
摘要:运用一门程序设计语言对大多数程序员来说是小菜一碟,但是更上一层楼成为一名专家级的软件开发者,恐怕目前还是大多数人的梦想。《程序员的思维修炼》一书中将程序员分为5个层级:新手,高级新手,胜任者,精通者,专家。根据作者的调查研究结果,在这5个层级中,大多数的程序员属于高级新手。而且居于这个层级的程序员从入行1、2年的到工作10来年都大有人在。身为一个程序员,如何才能尽快的突破自身的瓶颈,得到快速的提升那?这可真不是三言两语可以说清楚。本人09年毕业投身软件行业,2012年初离开工作了三年的公司A,加入了现在的公司B。算到现在呆在B公司也即将满一年了。但是我敢说在B公司1年学到的东西,比在A公司3年 阅读全文
posted @ 2013-03-24 16:21 Skysper 阅读(327) 评论(1) 推荐(0)
摘要:概述反射通过反射可以提供类型信息,从而使得我们开发人员在运行时能够利用这些信息构造和使用对象。反射机制允许程序在执行过程中动态地添加各种功能。运行时类型标识运行时类型标识(RTTI),可以在程序执行期间判定对象类型。例如使用它能够确切地知道基类引用指向了什么类型对象。运行时类型标识,能预先测试某个强制类型转换操作,能否成功,从而避免无效的强制类型转换异常。在c#中有三个支持RTTI的关键字:is 、 as 、typeof。 下面依次介绍他们is运算符:通过is运算符,能够判断对象类型是否为特顶类型,如果两种类型是相同类型,或者两者之间存在引用,装箱拆箱转换,则表明两种类型是兼容的。View C 阅读全文
posted @ 2013-03-03 00:12 Skysper 阅读(133) 评论(0) 推荐(0)
摘要:WCF寄宿方式是一种非常灵活的操作,可以在IIS服务、Windows服务、Winform程序、控制台程序中进行寄宿,从而实现WCF服务的运行,为调用者方便、高效提供服务调用。本文分别对这几种方式进行详细介绍并开发例子进行说明,以求大家对WCF寄宿的方式进行全面的认识和了解。1、 WCF服务的IIS服务寄宿我在我前面几篇WCF开发框架的介绍文章中,介绍过了WCF常用的一种寄宿方式,IIS服务寄宿。这种寄宿方式是最为方便的方式,而且由于服务只需要IIS运行就能自动运行起来,因此广为使用。创建这种方式IIS寄宿方式的,只需要在解决方案里面,添加WCF服务应用程序,就可以生成这种的服务模块了。这个是一 阅读全文
posted @ 2013-02-23 17:03 Skysper 阅读(176) 评论(0) 推荐(0)
摘要:逆变(contravariant)与协变(covariant)是C#4新增的概念,许多书籍和博客都有讲解,我觉得都没有把它们讲清楚,搞明白了它们,可以更准确地去定义泛型委托和接口,这里我尝试画图详细解析逆变与协变。变的概念我们都知道.Net里或者说在OO的世界里,可以安全地把子类的引用赋给父类引用,例如:?123//父类 = 子类stringstr = "string";objectobj = str;//变了而C#里又有泛型的概念,泛型是对类型系统的进一步抽象,比上面简单的类型高级,把上面的变化体现在泛型的参数上就是我们所说的逆变与协变的概念。通过在泛型参数上使用in或o 阅读全文
posted @ 2013-02-19 22:59 Skysper 阅读(194) 评论(0) 推荐(0)
摘要:default在switch case语句中的用法就不再详解了在泛型类和泛型方法中产生的一个问题是,在预先未知以下情况时,如何将默认值分配给参数化类型 T:T 是引用类型还是值类型。如果 T 为值类型,则它是数值还是结构。给定参数化类型 T 的一个变量 t,只有当 T 为引用类型时,语句 t = null 才有效;只有当 T 为数值类型而不是结构时,语句 t = 0 才能正常使用。解决方案是使用default关键字,此关键字对于引用类型会返回 null,对于数值类型会返回零。对于结构,此关键字将返回初始化为零或 null 的每个结构成员,具体取决于这些结构是值类型还是引用类型。对于可以为 nu 阅读全文
posted @ 2013-02-19 15:34 Skysper 阅读(683) 评论(0) 推荐(0)
摘要:好像园内比较多博客对 Shallow、Deep Cloning的翻译是深拷贝、浅拷贝,当时我懵了,这个叫法怎么怪怪的。就好像看军情观察室,台湾评论员,导弹叫飞弹。至于它们的区别,一张图就可以解释。这两个概念,经常对一些对象操作时,忘了自己使用的是shallow 还是deep,而搞到神经大条。 MSDN的解释是: Clonecan be implemented either as a deep copy or a shallow copy.In a deep copy, all objects are duplicated; whereas, in a shallow copy, only t. 阅读全文
posted @ 2013-02-14 22:49 Skysper 阅读(201) 评论(0) 推荐(0)