簡體   English   中英

如何在C#中的另一個類中的一個類中添加方法?

[英]How can i add a method in a class from another class in C#?

我是C#的新手。 我懷疑,如何使用ClassBClassA添加方法。

例如,我遵循以下代碼:

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

可能嗎?

不清楚您到底想要什么,但是繼承是一種解決方案:

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

聽起來您想要的是一種擴展方法 文檔的第一行說:

擴展方法使您可以將方法“添加”到現有類型,而無需創建新的派生類型,重新編譯或修改原始類型。

正如您在評論中提到的那樣(“它們只是給類名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) { }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM