扩展方法

来源:互联网 发布:免费好用的mac清理软件 编辑:程序博客网 时间:2024/06/06 01:07

1..net3.5引入扩展方法,它允许你在不直接修改原始类型的情况下为类或结构添加新的方法或属性。

2.扩展方法必须声明为静态的;所有的扩展方法都需要使用this关键字对第一个参数(并且仅对第一个参数)进行修饰,用this修饰的参数表示被扩展的类。

public static class Myclass4
    { 
        //返回任何对象的完全限定名称
        public static string ShowInfos(this Object obj)
        {
            return obj.GetType().FullName;
        }
    }

3.如果没有显示的导入命名空间,扩展方法对当前代码文件是不可用的。

using ClassLibrary10;

public class MyClass5  //另一个程序集中引用
    {
        private void Func1()
        {
            int a = 1;
            a.ShowInfos();            
        }
    }

4.扩展实现了指定接口的类型

public interface ITestExpandFunction
    {
        void Func1(string name);
    }

public static class Class1
    {       
        public static void ShowInfos2(this ITestExpandFunction arg);
    }

导入指定的命名空间并调用:

 public class MyClass6 : ITestExpandFunction
    {
        public void Func1(string name)
        {
            Console.WriteLine(this.GetType().FullName.ToString());
        }
    }

 public class MyClass5
    {
        public void Func2()
        {
            MyClass6 cls6 = new MyClass6();
            cls6.ShowInfos2();
        }
    }
  5.扩展方法的LINQ API中有着十分重要的作用。

0 0
原创粉丝点击