【发布时间】:2021-09-19 13:40:17
【问题描述】:
如果我做这样的方法:
public static void ExtMethod(this string);
如果我这样调用它就会显示出来:
string str = "";
str.ExtMethod();
但如果我这样做:
public static void ExtMethod(this DateTime);
这不起作用:
DateTime date;
date.ExtMethod();
我必须这样称呼它:
ExtMethod(date);
那为什么我可以为字符串做一个扩展方法,而不能为 DateTime 做一个扩展方法呢?
【问题讨论】:
-
错误信息是什么? “不起作用”是什么意思?
-
它应该可以工作。您是否缺少扩展类命名空间的 using 指令?
-
您当前的扩展方法都不会编译,因为您没有为参数提供名称。请注意,假设您看到的错误消息实际上是关于明确分配的(根据 kordiseps 的回答),如果您没有为变量分配初始值,那么您的字符串扩展方法会看到相同的内容。
-
@mummy 请分享minimal reproducible example。
-
@Steeeve:没有显示完整示例(甚至没有显示错误消息)的问题在于,不清楚哪些问题只是拼写错误,哪些问题实际上在 OP 的代码中。
标签: c# extension-methods