}
第二,ObsoleteAttribute 現在可以應用到運算符,這樣程序員就可以使重載的運算符函數失效。最后,編譯器以前對于無法識別的屬性位置常常生成一個錯誤,而現在則根據 ECMA C# 規范的要求只生成一個警告。
另外,C# 編譯器以前接受用戶定義的移位運算符參數(<< 和 >>),而根據 ECMA C# 規范,這些參數是無效的。例如,移位運算符以前可以按以下方式進行聲明,即將封裝類的類型聲明為第二個操作數:
public class MyClass
{
public static MyClass operator <<(int I, MyClass c)
{
}
public static void Main()
{
}
}
按照規范,如果向左移位運算符被重載,則二進制運算符的操作數列表中的第一個參數必須為封裝類型。同樣,如果向右移位運算符被重載,則二進制運算符的操作數列表中的第二個參數必須為封裝類型。下面的代碼示例演示了向左移位運算符的正確聲明方式:
public class MyClass
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/