说说NET3.5中的扩展方法

扩展方法配合Lambda表示达,可以方便我们进行数据的查询,看个代码吧:

      IEnumerable<string> x=new List<string> {"1","zzl","good"}; //为对象赋值
        
       foreach (var info in  x.ForUser("zzl"))   //从其中筛选zzl这个字符
        {
            Response.Write(info);
        }
 
public static class filter
{
    public static IEnumerable<string> ForUser(this IEnumerable<string> qry, string userName)  
    {
        return from a in qry
               where
                   a.Contains(userName.ToLower())
               select a;
    }
}

上面程序中,对string类型,进行了扩展方法的建立,方法对string的列表进行查询!

:P

回头有时间再说说JS中的扩展方法

本文转自博客园张占岭(仓储大叔)的博客,原文链接:说说NET3.5中的扩展方法,如需转载请自行联系原博主。

时间: 2024-09-22 14:18:40

说说NET3.5中的扩展方法的相关文章

.net3.0中的扩展方法(示例)

先定义一个类Utils,在该类中定义了一个string类的扩展方法_IsNull  using System;namespace LinqDemo.App_Code{    public static class Utils    {        /**//// <summary>        /// 传统写法        /// </summary>        /// <param name="s"></param>     

C#3.0 中使用扩展方法来扩展接口

有关扩展方法的一些知识点请参看我的前篇博客:C#3.0 中的扩展方法 (Extension Methods)前篇博客中我重点介绍了两个特殊场景:1.扩展方法跟原来类的方法重名时候的处理逻辑2.扩展方法的嵌套现在我们来看扩展方法使用的第三个场景:使用扩展方法来扩展接口 应用场景举例:我们有时候会发现最初定义的一个接口,在现在环境下,这个接口需要再增加一个函数.有了扩展方法后,我们在这种情况下又多了一种实现的选择.下面以代码来说明这个问题:namespace Hongjun.Guo{interfac

objective-C中的扩展方法与partial class

 在c#中要扩展一个现有类很容易,比如这样: public static class Utils { public static void PrintToConsole(this string strSrc) { Console.WriteLine(strSrc); } } 这样就为String类添加了一个PrintToConsole的方法,使用方法如下: class MainClass { public static void Main (string[] args) { "Hello Wor

C#中使用扩展方法对调用进行验证

利用C# 3.0提供的扩展方法技术,可以为已经编译好的程序集类型增加新的方法,从而应对新的扩展.除了在可扩展性方面所具有的优势之外,如果能够合理地结合泛型与类型推断,扩展方法还可以有效降低代码的重复,提高程序的可重用性.例如,这样的方法实现: public class CustomerDAL { public IEnumerable<Customer> FindCustomers(string roleName) { return from customer in context.Custom

asp.net中CSharpThinking 扩展方法

本章主要描述扩展方法的应用及相关原理. 一, 演变 1.1 扩展方法特征 1)必须在一个静态方法中. 2)至少有一个参数. 3)第一个参数必须附加this关键字作为前缀. 4)第一个参数不能有其他任何修饰符(如 out,ref). 5)第一个参数的类型不能是指针. 6) 如果扩展方法名称与类型的方法一样(如都命名为ToString),则只有类型的方法会被调用,而扩展方法的不会,这是一个优先级问题. 1.2 扩展方法与普通静态方法的比较   C#2 时对一个类进行扩展而又不能应用继承方式时,只能编

asp.net中 C#扩展方法实例

这是msdn上说的,也就是你可以对String,Int,DataRow,DataTable等这些类型的基础上增加一个或多个方法,使用时不需要去修改或编译类型本身的代码. 先做个例子吧,以String为例,需要在字符串类型中加一个从字符串转为数值的功能. 以往我们可能是这样做的,会专门写一个方法做过转换 public static int StrToInt(string s) {     int id;     int.TryParse(s, out id);//这里当转换失败时返回的id为0  

.Net 2.0中使用扩展方法

大家都知道扩展方法是不能直接在2.0中使用的需要引用一个‍System.Core的dll不过现在有更加简单的方法了只要在工程项目中加入以下代码就OK啦‍namespace System.Runtime.CompilerServices{    [AttributeUsage(AttributeTargets.Method | AttributeTargets.Class | AttributeTargets.Assembly)]    public sealed class ExtensionA

解析C#的扩展方法_C#教程

 在使用面向对象的语言进行项目开发的过程中,较多的会使用到"继承"的特性,但是并非所有的场景都适合使用"继承"特性,在设计模式的一些基本原则中也有较多的提到.     继承的有关特性的使用所带来的问题:对象的继承关系实在编译时就定义好了,所以无法在运行时改变从父类继承的实现.子类的实现与它父类有非常紧密的依赖关系,以至于父类实现中的任何变化必然会导致子类发生变化.当你需要复用子类时,如果继承下来的实现不适合解决新的问题,则父类必须重写它或被其他更适合的类替换,这种依

C# 3.0语言新特性(语言规范):2 扩展方法

规范 原文:<C# Version 3.0 Specification>,Microsoft翻译:lover_P 扩展方法(Extension Methods)是一种静态方法,可以通过实例方法的语法进行调用.从最终效果上看,扩展方法使得扩展一个现有类型和构造一个具有附加方法的类型变成了现实. 注意 扩展方法很难发觉,并且比起实例方法在功能性上有很大限制.出于这些原因,我们建议保守地使用扩展方法,仅在实例方法不大可行或根本不可行的时候才使用. 扩展成员的其他类型,如属性.事件和运算符都在考虑之中