string.IsNullOrEmpty()这个方法算得上是.net中使用频率最高的方法之一.此方法是string的一个静态方法,类似的静态方法在string这个类中还有很多.那么这样的方法作为静态方法是否合理呢?如果我们从面向对象的角度出发,我们会发现这种方案不是十分符合面向对象的设计原则. 什么是对象?对象是拥有数据和行为的结合体.如果说string是一个类,那么string message="hello"这句话就定义了一个string的对象,名称叫做message. 一.让对象自…
把一个变量带进一个方法,该方法执行结束后,它的值有时会改变,有时不会改变.一开始会觉得--“好神奇呀”.当我们了解java内存分析的知识后,一切都是那么简单明了了--“哦,这么回事呀”.但是今天的上机课,对于引用变量,我犯了一个错误,下面是代码的简化-- void method(int a[]) { int temp[]={1,2,3,4}; a[0]=5; a=temp; } 在这里,我试图把临时数组变量的值赋给a,从而改变实参的值. 方法传参,分传值和传址,基本数据类型变量的传参传的是值:引…
http://www.cnblogs.com/zhaopei/p/5678842.html…
上一篇随笔 .NET 扩展方法 (一) 已经对 扩展方法有了大致的介绍,这篇算是一个补充,让我们来看一下扩展方法的几个细节: 一.扩展方法具有继承性 当使用扩展方法扩展一个类型的时候,其也扩展了派生类,所以上一篇的遗留问题“如果给object添加一个扩展方法会出现什么效果呢?” 的 答案就是——所有类型都将扩展该方法.object类已经经受住了时间的考验,我们似乎也找不到更合适的理由来扩展object类.从另外的 角度考虑,如果扩展了object类,很有可能会给“智能敏感提示”造成污染,以至于填…
通过前面的学习,了解到:使用扩展方法,可以向现有类型“添加”方法.本文将使用扩展方法来对系统类型,自定义类型及接口进行方法扩展,一睹扩展方法的风采. 1.使用扩展方法来扩展系统类型 String是c#里面最常用的类之一,本文将以String类作为演示对象. String类中有一个静态方法IsNullOrEmpty,本文使用扩展方法将其扩展成“实例”方法. String类中IsNullOrEmpty的定义为: public static bool IsNullOrEmpty(string valu…
概述 本节主要解说扩展方法,涉及LinQ的详细知识不多. 扩展方法的描写叙述 .net framework为编程人员提供了非常多的类,非常多的方法,可是,不论.net framework在类中为我们提供了多么多的方法,有时候仍然不能满足我们的需求,比如:你想让字符串对象具有ToPascal方法,含义就是将字符串转化为Pascal格式,并返回,我们知道,.net framework提供的String类中并没有为我们提供对应的方法,此时,我们应该怎么做才干够达到我们的目的呢?有人说能够继承Strin…
写代码时,我们经常会碰到dll中提供的方法,不够用或者不好用的情况.而且我们也不方便去更改dll本身的源码. 这时候我们可以使用.NET提供的"扩展方法"去解决这个问题. 下面我写几个简单的扩展方法在这里抛砖引玉,如有问题,请各位大大指正. 写代码时,我们经常会对string类型的数据进行操作,比如判断是否为null或者是否为空字符串. 平时我写代码基本就是如下代码: string str = GetName(); //第一种 if (str == null || str == &qu…
扩展方法被定义为静态方法,但它们是通过实例方法语法进行调用的. 它们的第一个参数指定该方法作用于哪个类型,并且该参数以 this 修饰符为前缀. 仅当你使用 using 指令将命名空间显式导入到源代码中之后,扩展方法才位于范围中. 下面的示例演示为 SystemString 类定义的一个扩展方法. 请注意,它是在非嵌套的.非泛型静态类内部定义的: namespace ExtensionMethods { public static class MyExtensions { public stat…
扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型.扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用.对于用 C# 和 Visual Basic 编写的客户端代码,调用扩展方法与调用在类型中实际定义的方法之间没有明显的差异. 最常见的扩展方法是 LINQ 标准查询运算符,它将查询功能添加到现有的 System.Collections.IEnumerable 和System.Collections.Generic.IEnumera…
1.首先我们应该知道什么是扩展方法: 扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型. 扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用. 2.知道了扩展方法怎么创建呢? 定义一个静态类以包含扩展方法.  将该扩展方法实现为静态方法,并使其至少具有与包含类相同的可见性. 该方法的第一个参数指定方法所操作的类型:该参数必须以 this 修饰符开头. 在调用代码中,添加一条 using 指令以指定包含扩展方法类的 命名空间. 按…