C# 扩展方法Extension Method

C# .NET Framewoke 3.0就引入的新特性,提供了扩展.NET类方法的途径,可以增加代码的美观性!

编写扩展方法有下面几个要求:

扩展方法所在的类必须是全局的,不能是内部嵌套类, 扩展方法的类必须是静态类

扩展方法必须是静态方法

扩展方法的第一个参数的数据类型必须是要扩展类型且使用this关键字

扩展方法定义:

public static class CExLongMethed
{
    //无参无返回值
    public static void Print(this long l)
    {
        Console.WriteLine(l);
    }

    //有参有返回值
    public static long Add(this long l, long l2)
    {
        return (l + l2);
    }
}

调用:

long lVal = 1;
lVal.Print();

Console.WriteLine( lVal.Add(2) );
时间: 2024-12-04 15:10:37

C# 扩展方法Extension Method的相关文章

.NET 扩展方法(Extention Method)的要点

扩展方法Extention Method的主要介绍在:http://msdn.microsoft.com/zh-cn/library/bb383977(v=vs.100).aspx. 扩展方法能够向已存在的类型(这时称为Extended Type)添加方法,而无需修改该类型. 关于扩展方法的几个要点是: 扩展方法被定义为"静态方法(static method)",但是调用时使用的是"实例方法(instance method)"的语法(即在对象而非类后面写"

Unity3d的C#扩展方法Extension methods应用吧

扩展方法的条件: 必须声明为静态类 必须声明为静态方法 方法的第一个参数为this 首先来扩展Unity中的协程Coroutine, using UnityEngine; using System.Collections; using System; /// <summary> /// a set of extension methods meant help with common coroutine cases. Example : /// <code> /// void On

C#扩展方法(Extend Method)

在不更改原来类的基础上,为类添加方法. 1,扩展方法必须写静态类中 2,扩展方法必须是静态方法,虽然是静态方法,但是这个扩张方法是为对象扩展的,只能由对象调用. public static class 类名 { public static 返回值 方法名(this 要扩展的类型 对象名[,参数列表]) { } } static class Extend { public static TSource Test123<TSource>(this IEnumerable<TSource>

C#创建自己的扩展方法

C#可以创建自己的扩展方法Extension Method: 参考这篇<判断是否为空然后赋值>http://www.cnblogs.com/insus/p/8004097.html 里,前面三个方法,均出现null这关键词,在判断时,你需要== null或者!=null. 其实你完全可以创建C#的扩展方法来消除这种的繁杂. public static class ExtensionMethod { public static bool IsNull(this object obj) { ret

在jQuery定义自己的扩展方法函数

今早复习昨天的练习jQuery的DropDownList联动功能,如果想看回<jQuery实现DropDownList(MVC)>http://www.cnblogs.com/insus/p/3413749.html 和<jQuery实现两个DropDownList联动(MVC)>http://www.cnblogs.com/insus/p/3414480.html .发觉一些jQuery代码冗余.如: 上图中,高亮部分的代码将会是产生冗余,它只是对象不相同而已.jQuery是否也

扩展Unity3d 组件方法,简化API使用 - C#特性之 Extension Method

在日常使用Unity3d中,经常碰到一些简单操作但是代码却很长的问题,比如变换一个 GameObject的 Y 位置,会按照下面的写法: transform.localPosition = new Vector3 (transform.localPosition.x, transform.localPosition.y + 100, transform.localPosition.z); 转自http://blog.csdn.net/huutu http://www.thisisgame.com

Extension Methods(扩展方法)

在 OOPL 中,有静态方法.实例方法和虚方法,如下: public sealed class String { public static bool  IsNullOrEmpty(string s) { // ... } public string Replace(string old, string new) { // ... } } public abstract class Stream { public virtual void WriteByte(byte value) { // .

(转)C# -- 扩展方法的应用(Extension Methods)

本文转载自:http://blog.csdn.net/zxz414644665/article/details/9793205 当你有下面这样一个需求的时候,扩展方法就会起到作用:在项目中,类A需要添加功能,我们想到的就是在类A中添加公共方法,这个显而易见肯定可以,但是由于某种原因,你不能修改类A本身的代码,但是确实又需要增加功能到类A中去,怎么办? 这个时候扩展方法(Extension Methods)就会帮助你完成上述功能了.现在举例如下: 类A:简单起见,类A中只有一个自己的方法. usi

ABP框架源码中的Linq扩展方法

文件目录:aspnetboilerplate-dev\aspnetboilerplate-dev\src\Abp\Collections\Extensions\EnumerableExtensions.cs using System; using System.Collections.Generic; using System.Linq; namespace Abp.Collections.Extensions { /// <summary> /// Extension methods for