C#扩展方法
最近在工作中遇到一个问题,即在不修改原始类的情况下,为类添加新的方法和属性,于是在C#的高级特性中发现了解决方案:扩展方法
下面的扩展方法的定义:
扩展方法有两个限制:1 方法必须的定义在静态类中(类中所有的扩展都是静态的);2 所有扩展方法都需要使用this关键字对第一个参数(并且仅对第一个参数)进行修饰(用this限定的参数表示被扩展的项);下面的这个类中定义了两个扩展方法:
using System;
using System.Reflection;
/// <summary>
/// C#高级特性扩展方法学习
/// </summary>
public static class Sample {
// 本方法任何对象显示它所处的程序集//
public static void DisplayDefiningAssembly(this object obj) {
Debug.Log(obj.GetType().Name + "lives here: => " +Assembly.GetAssembly(obj.GetType()).GetName().Name);
}
// 本方法允许任何整形返回倒置的副本,例56返回65//
public static int ReverseDigits(this int i) {
//把int翻译成string然后获取所有的字符串 //
char[] digts = i.ToString().ToCharArray();
//反转数组的项//
Array.Reverse(dig