zoukankan      html  css  js  c++  java
  • C# 扩展方法

    扩展方法在静态类中生命,定义为一个静态方法,其中第一个参数定义了它所扩展的类型;

    public statirc class StringExtension
    {
        public static void Foo(this string s)
        {
            WriteLine($"Foo invoked for {s}");
        }
    }
    

     第一个参数定义了String类型,多使用this 用于区分与一般的静态方法;

    使用方法

    string s = "Hello";
    s.Foo();
    

     输出:“Foo invoked for Hello",

    定义Linq扩展方法的一个类是System.Linq名称空间中的Enumerable。  System.Core.dll 中

    IEnumerable<TSource>.Where() 实现方法:

    public static IEnumerable<TSource> Where<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate)
    {
        foreach(TSource item in source)
           if(predicate(item))    yeild return item;
    }
    

     第一个参数:this IEnumerable<TSource> souce  声明属于IEnumerable<TSouce>的扩展方法;

    第二个参数: Fucn<TSouce, bool> predicate 属于委托,表示接收TSource类型的参数,返回bool类型的方法;

  • 相关阅读:
    DataGridView
    View Designer
    错题集
    MetalKit_1
    倍道而行:选择排序
    ARKit_3_任意门
    ARKit__2_尺子项目
    关于scrollview的无限滚动效果实现
    tableview折叠动效
    NSURLSession的简单使用
  • 原文地址:https://www.cnblogs.com/ILoveMyJob/p/10296383.html
Copyright © 2011-2022 走看看