如何在C#中的另一个类中的一个类中添加方法?

时间:2019-02-23 04:45:03

标签: c#

我是C#的新手。我怀疑,如何使用ClassAClassB中添加方法。

例如,我遵循以下代码:

public ClassA{
     method1(){}
     method2(){}
}
public ClassB{
   //Here i want add another method for `ClassA`
}

有可能吗?

2 个答案:

答案 0 :(得分:1)

不清楚您到底想要什么,但是继承是一种解决方案:

public ClassB {
     public method3() {};
}
public ClassA : ClassB { // now ClassA has method3 too
     method1(){}
     method2(){}
}

答案 1 :(得分:1)

听起来您想要的是extension method。文档的第一行说:

  

扩展方法使您可以将方法“添加”到现有类型   无需创建新的派生类型,重新编译或其他方式   修改原始类型。

正如您在评论中提到的那样(“它们只是给类名ClassA,而不是.cs文件,因此我无法在ClassA中添加方法”),听起来您没有访问源代码的权限用于ClassA。使用扩展方法,您可以创建自己的方法,可以为ClassA实例调用该方法。

在下面的示例代码中,classA.method3();是可能的:

class Program
{
    static void Main(string[] args)
    {
        ClassA classA = new ClassA();
        classA.method3(); // call the extra ClassA method you wrote
    }
}

// This class is assumed to be somewhere that you cannot modify
public class ClassA
{
    public void method1() { }
    public void method2() { }
}

// This is "ClassB" from your question, but I've renamed it to "ExtensionMethods"
public static class ExtensionMethods
{
    public static void method3(this ClassA classA) { }
}