在 C# 10 中使用Global Static指令

作者 : 慕源网 本文共2340个字,预计阅读时间需要6分钟 发布时间: 2022-02-28 共243人阅读

介绍

在本文中,我们将讨论如何使用带有“static”修饰符的“global using”指令。 

我假设您知道 C# 10 中的“using”和“global using”指令。如果没有,请先阅读“C# 10 中的全局使用”一文,然后继续阅读本文以获得更好的理解。 

我们将从“static”修饰符开始,然后通过一个简单的示例学习如何结合“global”修饰符和“static”修饰符。

Static 修饰符

使用Static 修饰符是在 C# 6.0 中引入的。这个 using static 指令帮助我们在不指定类型名称的情况下使用静态成员和嵌套类型。 

使用静态指令的语法 

using static <fully-qualified-type-name>;

full-qualified-type-name –  <fully-qualified-type-name> 是可以在不指定类型名称的情况下引用其静态成员和嵌套类型的类型的名称。

让我们尝试使用以下用例来理解这一点,

用例

下面的代码是在没有“using static”指令的情况下编写的

namespace staticdemo
{
    public class staticdemocls
    {
        public void PrintNames()
        {
            Console.WriteLine("Kirtesh Shah");
            Console.WriteLine("Sweta Shah");
            Console.WriteLine("Nitya Shah");
            Console.WriteLine("Dilip Shah");
            Console.WriteLine("Hansa Shah");
        }
        public void PrintMathSample()
        {
            Console.WriteLine(System.Math.Max(500, 50));
            Console.WriteLine(System.Math.Min(500,50));
            Console.WriteLine(System.Math.Round(500.50));)
        }
    }
}

在上面的例子中,

  1. 我们创建了一个具有 2 个方法的类
  2. “Print Names()”方法在屏幕上打印姓名。
  3. “PrintMathSample()”方法在使用“System.Math”命名空间进行一些计算后打印一些数字。

您可能会注意到,我们使用了“System”命名空间中的“Console.WriteLine()”方法,并且在上面的代码中多次使用了“System.Math”命名空间中的“Max”、“Min”和“Round”方法.

让我们执行这段代码,

staticdemocls staticdemoclsobj = new staticdemocls();
staticdemoclsobj.PrintNames();
staticdemoclsobj.PrintMathSample();

输出

在 C# 10 中使用Global Static指令

开发人员讨厌多次编写相同的类型,这会使您的代码复杂且不易阅读,因此微软在 C# 6.0 中引入了“using static”指令。

现在我们将在同一个示例中使用“using static”指令,

using static System.Console;
using static System.Math;

namespace staticdemo
{
    public class staticdemocls
    {
        public void PrintNames()
        {
            WriteLine("Kirtesh Shah");
            WriteLine("Sweta Shah");
            WriteLine("Nitya Shah");
            WriteLine("Dilip Shah");
            WriteLine("Hansa Shah");
        }

        public void PrintMathSample()
        {
            WriteLine(Max(500, 50));
            WriteLine(Min(500,50));
            WriteLine(Round(500.50));
        }
    }
}
}

我们在上面的例子中声明了“using static”指令。您可能会注意到,现在我们已经使用

  1. “WriteLine()”而不是“Console.WriteLine()”。
  2. “Max()”而不是“System.Math.Max()”
  3. “Min()”而不是“System.Math.Min()”
  4. “Round()”而不是“System.Math.Round()”

让我们执行这段代码并查看输出,

在 C# 10 中使用Global Static指令

使用global static 修饰符

“global”修饰符可以与“static”修饰符结合使用。让我们结合上例中的“global”修饰符和“static”修饰符。

众所周知,开发人员不喜欢/不喜欢在多个类中使用 static 指令导入相同的指令,这就是微软在 C# 10 中添加global static 修饰符的原因。 

向“using”指令添加global static 修饰符允许您在整个项目文件中使用命名空间类型的所有静态成员。

让我们从“staticdemocls”类中删除以下两个语句,并将它们添加到 using.cs 文件中。

global using staticdemo;
global using static System.Console;

将其添加到 using.cs 文件中,

global using System;
global using System.Collections.Generic;
global using Example;
global using staticdemo;
global using static System.Console;
global using static System.Math;

让我们再次运行代码并查看输出,

在 C# 10 中使用Global Static指令

这就是本文的全部内容。对于开发人员来说,这是一个简单但非常重要的概念。我希望你喜欢这篇文章。


慕源网 » 在 C# 10 中使用Global Static指令

常见问题FAQ

程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!

发表评论

开通VIP 享更多特权,建议使用QQ登录