为什么我可以将扩展方法添加到字符串 class 但不能添加到 DateTime?

Why can I add extensions methods to the string class but not to DateTime?

如果我做这样的方法:

public static void ExtMethod(this string);

如果我这样调用它,它就会出现:

string str = "";
str.ExtMethod();

但如果我这样做:

public static void ExtMethod(this DateTime);

这行不通:

DateTime date;
date.ExtMethod();

我必须这样称呼它:

ExtMethod(date);

那么为什么我可以为字符串做一个扩展方法,而不能为 DateTime 做一个扩展方法?

未分配日期变量。您需要分配一些值。
例如

DateTime date = DateTime.Now;//or some value else
date.ExtMethod();

而不是

DateTime date;
date.ExtMethod();