c#之有参和无参构造函数,扩展方法

例如在程序中建立 Parent类和Test类,在Test有三个构造函数,parent类继承Test类,那么咱们能够在Test类自身中添加 扩展 方法吗?函数

答案:是不能够的。由于扩展方法必须是静态的,且静态方法是不存在构造函数的。this

先看一段代码:spa

public class Test
    {
        public Test()
        {
            Console.WriteLine("这是无参的构造函数");    
        }
        public Test(string name)
        {
            Console.WriteLine(string.Format("这是有参的构造函数,想知道name:{0}",name));
        }
        public Test(Test test, int age)
        {
            Console.WriteLine("这是含有Test类型的函数");
        }
    }




public class Parent:Test
    {
        public Parent() : base(new Test(), 11) {
            Console.WriteLine("调用Test中的有参构造函数");
        }

    }



class Program
    {
        static void Main(string[] args)
        {

            Parent parent = new Parent();
           //在调用的时候时候,是先调用了Test中的无参构造函数,接着调用了有Test类行的有参构造函数
        }
    }

还有一个this()的用法:code

public class aaa{
      public aaa(int v){}
      public aaa() :this(11) {}   
}

那么如何实现扩展呢?orm

public static class HasKz
    {
        public static void getName(this HasKz kz, int age)
        {
         //报错,提示静态类不能做为参数
        }
   }//获得的结论,自身类中不能实现扩展方法//同时扩展方法是在静态中定义的例如在parent正确的定义//public static void GetName(this Test t,int name)
相关文章
相关标签/搜索