码迷,mamicode.com
首页 > Windows程序 > 详细

C# 扩展方法

时间:2019-01-20 22:30:20      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:第一个   ext   turn   表示   linq   UNC   his   str   div   

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

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类型的方法;

 

C# 扩展方法

标签:第一个   ext   turn   表示   linq   UNC   his   str   div   

原文地址:https://www.cnblogs.com/ILoveMyJob/p/10296383.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!