为什么我可以在不指定字符串 class 的情况下调用 IsNullOrWhiteSpace

How come I can call IsNullOrWhiteSpace without specifying string class

在我的研究过程中,我发现了关于 IsNullOrWhiteSpace 的一些有趣的事情。

这是一种扩展方法,但我曾经将其用作 string.IsNullOrWhiteSpace

我在某个地方发现我可以在不指定的情况下调用它 string class:

public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        var req = filterContext.HttpContext.Request;
        var auth = req.Headers["Authorization"];
        if (!IsNullOrWhiteSpace(auth))
        {
...

这是怎么可能的,为什么会起作用?

我想您会在文件顶部找到这个:

using static System.String;

using static directives的特性是在C#6中引入的,允许你无限制地使用指定class的任何静态成员。