我的代碼如下,其中WebServiceSender是父類。在子類中重載的父類上創建的調用擴展方法
我已經添加擴展方法將其稱爲「ExtTest」。
我有一個子類「ChildWebServiceSender」繼承 WebServiceSender。
在我的孩子班級爲有兩個重載方法我有同樣的簽名 擴展方法的方法,
public WebServiceSender ExtTest(string something)
現在創建子類的對象後,我獲得智能。但我總是可以從Child類調用ExtTest,但不能使用Extension方法。
如何調用擴展方法ExtTest?
public class WebServiceSender : IMessageSender
{
public void SendMessage(string subject, string body)
{
Console.WriteLine("Web Service\n{0}\n{1}\n", subject, body);
}
}
public static class util
{
public static WebServiceSender ExtTest(this WebServiceSender abc, string something)
{
Console.WriteLine("I am into extension");
return new WebServiceSender();
}
}
public class ChildWebServiceSender : WebServiceSender
{
public WebServiceSender ExtTest(string something)
{
Console.WriteLine("I am in instance");
return new WebServiceSender();
}
}
class Program
{
static void Main(string[] args)
{
ChildWebServiceSender d = new ChildWebServiceSender();
d.ExtTest("abc");
}
}
這是不好的設計,只是要求麻煩。以適當的方式命名您的方法。 – CyberDude