日期:2014-05-17  浏览次数:21124 次

静态类如何扩展方法
我知道通过扩展方法对非静态类进行扩展
如:

static class MyExtensionMethods
{
   internal static void Print(this Class1 c)
   {
   }
}


但是假如Class1是个静态类,是无法用作this参数的。有没有其他的办法呢?
因为我要为一个第三方的静态类增加几个方法。

------解决方案--------------------
扩展方法说白了只是一种语法上简洁,在逻辑上是可以替代的。
------解决方案--------------------
引用:
自己写个类,继承MyExtensionMethods



你可以用 部分方法,

知道有部分类,
部分方法也可以的。



public artial  static void MethodName()
{
   //todo
}

------解决方案--------------------
扩展方法就是方便直接对某类型的值进行某种操作

你现在是静态类的,还扩展方法干啥,直接再定义一个静态类,把方法加到这个静态类里
------解决方案--------------------
静态类不能拓展方法,而且也用不着。
附上实例类的拓展方法
using System;
using System.Collections.Generic;
using System.Text;

namespace 拓展方法
{
    class Program
    {
        static void Main(string[] args)
        {

            Class1 class1 = new Class1();
            class1.Add("");       
        }
    }

    public class Class1
    {
        private string str;
        public string Str { get; set; }

        public Class1()
        { }
    }

    public static class ClassAdd
    {
        public static void Add(this Class1 class1, string str)
        {
            class1.Str += str;
        }
    }
}