C# 扩展方法不适用于int?

C# 扩展方法不适用于int?,c#,.net,C#,.net,调用下面的代码告诉我方法格式不存在 public static class NumberExtensions { static string Format(this int integer) // Write one for int too, just incase :') { return string.Format("{0:n0}", integer); } } 这是变量 idItemsFinished.Format() 它只是一个int var

调用下面的代码告诉我方法格式不存在

public static class NumberExtensions
{
    static string Format(this int integer) // Write one for int too, just incase :')
    {
        return string.Format("{0:n0}", integer);
    }
}
这是变量

idItemsFinished.Format()
它只是一个int

var idItemsFinished = Program.IdItemsProcessed;

要回答主题中的问题-是的,扩展方法对int有效,int没有什么特殊之处。事实上,它们对整型文字也有效-5。格式应该可以

您遗漏了我怀疑的问题的原因,即名称空间。代码中可能有几十个位置,尤其是依赖库,它们将扩展方法添加到int,而您不想将它们全部导入,从而导致潜在的冲突,因此您必须向代码中添加一个using语句,该语句指向numbertensions的命名空间

这与向类添加引用没有什么不同,只是VisualStudio的intellisense通常很好地突出显示未知类并为您添加一个using,但它对扩展方法没有多大帮助


只需添加一个using语句,您就可以开始了。

回答主题中的问题-是的,扩展方法对int有效,int没有什么特殊之处。事实上,它们对整型文字也有效-5.格式应该可以

您遗漏了我怀疑的问题的原因,即名称空间。代码中可能有几十个位置,尤其是依赖库,它们将扩展方法添加到int,而您不想将它们全部导入,从而导致潜在的冲突,因此您必须向代码中添加一个using语句,该语句指向numbertensions的命名空间

这与向类添加引用没有什么不同,只是VisualStudio的intellisense通常很好地突出显示未知类并为您添加一个using,但它对扩展方法没有多大帮助

只需添加一个using语句,您就可以开始了。

向扩展方法添加公共访问说明符应该可以解决这个问题

public int IdItemsProcessed;
向扩展方法添加公共访问说明符应该可以解决此问题

public int IdItemsProcessed;

所有类型都已具有名为ToString的format排序方法,即您可以简单地使用idItemsFinished.ToString 0。所有类型都已具有名为ToString的format排序方法,即您可以简单地使用idItemsFinished.ToString 0。