[英]How can i add a method in a class from another class in C#?
我是C#的新手。 我懷疑,如何使用ClassB
在ClassA
添加方法。
例如,我遵循以下代碼:
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.