C# string.IsNullOrEmpty()不是扩展方法有什么特殊原因吗?

C# string.IsNullOrEmpty()不是扩展方法有什么特殊原因吗?,c#,string,C#,String,C#has string类的一些静态方法可以重写为扩展方法,例如 字符串类没有提供与静态类相同功能的默认扩展方法,这是有原因的吗?是的。真的很好 它早于可拓方法的存在。它只是先到了那里 这里也有一些类似的场景。很多API采用了一种类型,但没有通用版本,即所有API都早于泛型。是的。真的很好 它早于可拓方法的存在。它只是先到了那里 这里也有一些类似的场景。许多API采用typeof,但没有泛型版本,即所有早于泛型的API。另一个原因是,如果字符串引用为null,该方法将失败。考虑这样的事情: st

C#has

string
类的一些静态方法可以重写为扩展方法,例如


字符串
类没有提供与静态类相同功能的默认扩展方法,这是有原因的吗?

是的。真的很好

它早于可拓方法的存在。它只是先到了那里


这里也有一些类似的场景。很多API采用了一种类型,但没有通用版本,即所有API都早于泛型。

是的。真的很好

它早于可拓方法的存在。它只是先到了那里


这里也有一些类似的场景。许多API采用typeof,但没有泛型版本,即所有早于泛型的API。

另一个原因是,如果字符串引用为null,该方法将失败。考虑这样的事情:

string x = null;
if (x.isNullOrEmpty()) ...

此调用显然会导致错误。

另一个原因是,如果字符串引用为null,该方法将失败。考虑这样的事情:

string x = null;
if (x.isNullOrEmpty()) ...
此调用显然会导致错误。

请查看文档(特别是“应用于”部分)

此方法自.NET Framework 2.0以来就存在

如果您从中查看C#的历史,您会发现扩展方法随C#3.0而来,C#3.0大约是.NETFramework3.5

注意:不要混用C#版本和.NET版本。

查看文档(特别是“应用于”部分)

此方法自.NET Framework 2.0以来就存在

如果您从中查看C#的历史,您会发现扩展方法随C#3.0而来,C#3.0大约是.NETFramework3.5


注意:不要混用C版本和.NET版本。

不。实际上,使用null调用扩展方法是合法的。不。实际上,使用null调用扩展方法是合法的。