zoukankan      html  css  js  c++  java
  • LinqToSQL2

    扩展方法:

    扩展方法是C#3.0的新特性,可以通过为已知类型添加新方法来到到扩展类型的目的,同时不需对此类型做任何改动。

    重点记住的是,定义为静态方法的扩展方法只能在通过using指令显示地将名称空间导入到应用程序代码中后才能被调用。

    LINQ包含最常见的扩展方法,也就是所说的标准查询操作符。标准查询操作符扩展了IEnumerable<T>和IQueryable两种类型。

    代码中需要使用实例方法来调用扩展方法,然后编译器产生的中间语言(IL)会把代码转换成为对静态方法的调用。

     如果一定要使用扩展方法,牢记下面几点:

    1.如果定义的扩展方法同在该类型中已经存在的方法具有相同的名称,那么此扩展方法将永远不会调用。(方法不要重名)。

    2.扩展方法仅在命名空间的层次上才能被引入并得以使用。

    代码奉上(结合上一篇)

    public static class MyExtensions
    {
    public static bool IsValidEmail(this string email)
    {
    Regex exp = new Regex(@"^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$");
    return exp.IsMatch(email);
    }
    }

    DataContext context = new DataContext(connectionString);
    Table<Contack> contacts = context.GetTable<Contack>();
    var query = from s in contacts.AsEnumerable()
    select new { s.EmailAddress };
    foreach (var item in query)
    {
    if (item.EmailAddress.IsValidEmail())//这里调用了一下上面写的扩展方法
    {
    System.Console.WriteLine(item.EmailAddress);//这里就是筛选后的email
    }

    }

  • 相关阅读:
    JavaScript 显示数据
    c#运算符重载
    C++栈和队列标准库函数
    unity AB打包 unity2018.2.2
    VR AR SDK汇总
    Unity程序们经常用到的网址(方便自己用,一直更新)
    Unity打包Visual Studio部署HoloLens找不到WindowsMobile SDK的解决方案
    【Unity3D】串口通信
    【Unity3D】锁屏、解锁相关函数回调
    Unity3D Destroy方法的细节
  • 原文地址:https://www.cnblogs.com/jxl123456/p/11108900.html
Copyright © 2011-2022 走看看