我有以下功能
public static string TestFunc(this DateTime dt)
{
}
“这个”代表什么?
答案 0 :(得分:3)
在此上下文中,它用于定义extension method。
答案 1 :(得分:3)
它使这个方法成为一种扩展方法。它扩展了DateTime
结构。
你可以这样称呼它
DateTime dt = DateTime.Now;
string s = dt.TestFunc();
编译器将内部的最后一行重写为
string s = TestFunc(dt);
如果扩展方法声明为此
public static string TestFunc(this DateTime dt, string format)
{
}
你可以这样称呼
string s = dt.TestFunc("dd.MM.YY");
扩展方法必须在静态类中声明。如果声明类的命名空间可用(因为它位于相同的命名空间中,或者因为您使用using
导入了命名空间),它们可以在其他类中使用。如果您导入System.Linq
,您将看到许多扩展方法(在intellisense中),扩展了实现IEnumerable<T>
的各种集合。在成员列表中显示扩展方法的蓝色箭头。
答案 2 :(得分:2)
这是用于定义Extension方法的语法。它可以被称为普通静态函数:
DateTime dt = DateTime.Today;
string s = ClassName.TestFunc(dt);
或作为DateTime的“扩展名”:
DateTime dt = DateTime.Today;
string s = dt.TestFunc();
答案 3 :(得分:1)
用于扩展DateTime
类型,即全部。
答案 4 :(得分:0)
您找到DateTime
类型的extension method。
现在,如果不对现有DateTime
代码进行任何更改,您可以执行以下操作:
DateTime MyDT = DateTime.Now;
string MyStr = MyDT.TestFunc();
// continue using MyStr as you wish...