2
我有一個類:不能擴展方法添加到C#的抽象類
namespace MyNamespace
{
public abstract class Class1
{
public static string X()
{
return "Greetings from a method.";
}
}
}
和擴展方法:
namespace MyNamespace
{
public static class Class1Extension
{
public static string Y(this Class1 c1)
{
return "Greetings from extension method.";
}
}
}
,當我嘗試訪問的擴展方法中,編譯器給了我這個錯誤:
'MyNamespace.Class1' does not contain a definition for 'Y'
下面是我如何使用它:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using MyNamespace;
namespace Test_Console
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(Class1.X());
Console.WriteLine(Class1.Y());
Console.ReadLine();
}
}
}
所以擴展方法不是一成不變的? – dpp
擴展方法在技術上是靜態類中的靜態方法,但它們總是在*實例上操作* - 擴展方法的第一個參數是具有'this'限定符。 –
不,擴展方法*是靜態的。 –