public static class NumberExtensions
{
static string Format(this int integer) // Write one for int too, just incase :')
{
return string.Format("{0:n0}", integer);
}
}
调用以下代码告诉我方法Format
不存在。
idItemsFinished.Format()
这是变量
var idItemsFinished = Program.IdItemsProcessed;
这只是一个int。
public int IdItemsProcessed;
添加 public 访问扩展方法的访问说明器应解决问题。
public static class NumberExtentions
{
public static string Format(this int integer)
{
return string.Format("{0:n0}", integer);
}
}
请参阅点网小提琴
回答主题中的问题 - 是的,扩展方法确实在int
上使用,int
没有什么特别的。实际上,它们也将使用整数文字 - 5.Format()
应该很好。
您已经忽略了我怀疑的是您的问题的原因,即名称空间。代码中可能有数十个位置,尤其是您的依赖库中,它们将扩展方法添加到int
,并且您不必一定会导入所有内容(导致潜在的冲突(,因此您必须在代码中添加using
语句。指向NumberExtentions
的名称空间。
这与添加对类别的参考没有什么不同,除了视觉工作室的智能素质通常在突出一个未知类别和为您添加using
的授权方面非常好,但是它对扩展不那么有用方法。
只需添加一个使用语句,您可能会很好。