編譯器錯誤 CS1112
更新:2007 年 11 月
錯誤訊息
請勿使用 'System.Runtime.CompilerServices.ExtensionAttribute',請改用 'this' 關鍵字。
將 ExtensionAttribute 用於包含擴充方法的非靜態類別 (Class) 時,會產生這個錯誤。如果這個屬性 (Attribute) 是用於靜態類別,則可能會出現另一個錯誤,例如 CS0708:「不能在靜態類別中宣告執行個體成員」。
在 C# 中,擴充方法必須定義在靜態類別中,而且方法的第一個參數是使用 this 關鍵字進行修改。而在原始程式碼中,則請絕對不要使用這個屬性。如需詳細資訊,請參閱擴充方法 (C# 程式設計手冊)。
若要更正這個錯誤
- 移除屬性,並將 this 修飾詞 (Modifier) 套用至方法的第一個參數。
範例
下列範例會產生 CS1112:
// cs1112.cs
[System.Runtime.CompilerServices.ExtensionAttribute] // CS1112
public class Extensions
{
public bool A(bool b) { return b; }
}
class A { }