引入命名空間後,該型別實例即可調用延伸方法:
using MyExtensionMethods;
namespace MyNamespace
{
public class MyClass
{
public MyClass()
{
string data = "this is my data";
string nospaces = data.NoSpaces(); // 像實例方法調用
}
}
}
第一個參數 this string data 決定擴充目標型別;this object data 則擴充所有物件。
延伸方法優先序**低於實例方法**。同簽名時執行實例方法。
C# 2.0 需多個建構函式設定屬性組合:
Customer myCustomer = new Customer("Zach", "Smith");
public Customer(string firstName, string lastName) : this() { ... }
public Customer() { }
C# 3.0 任意屬性單一陳述式初始化:
Customer myCustomer = new Customer { FirstName = "Zach", LastName = "Smith" };
public Customer() { } // 僅需無參數建構函式
// 建構函式參數含義不明確
Car car = new Car(18, 10, 550);
// 物件初始化設定一目瞭然
Car car = new Car { WheelDiameter = 18, WheelWidth = 10, Horsepower = 550 };
雖多輸入字元,但**自文件化**特性極大提升維護性。