mad*_*ddy 0 c# extension-methods
我最近正在学习 C#,并了解到扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。有哪些例子可以阐明这一点?
扩展方法允许使用新方法扩展现有类型,而无需更改原始类型的定义。它允许您向您可能无法继承(因为它是sealed)或没有源代码的类型添加功能。
这是一个例子。我们将添加一个Age()方法DateTime:
public class Program
{
public static void Main()
{
DateTime birthdate = new DateTime(1980, 10, 7);
Console.WriteLine("Your age is: " + DateTime.Now.Age(birthdate));
}
}
public static class Extensions
{
public static int Age(this DateTime date, DateTime birthDate)
{
int birthYear = birthDate.Year;
int currentYear = DateTime.Now.Year;
return currentYear - birthYear - 1;
}
}
Run Code Online (Sandbox Code Playgroud)
从示例中您可以看到我们Age()向 C#DateTime类型添加了一个新方法。希望这能澄清事情。