【问题标题】:Can I import a static class as a namespace to call its methods without specifying the class name in C#?我可以将静态类作为命名空间导入以调用其方法而不在 C# 中指定类名吗?
【发布时间】:2011-09-13 05:41:00
【问题描述】:

我广泛使用了一个特定静态类的成员函数。每次调用它的方法时都指定类名看起来很讨厌......

我可以在不指定类名 C# 的情况下将静态类作为命名空间来调用其方法吗?

【问题讨论】:

  • 不,你能举个例子吗?
  • VB.NET 有一个 C# 没有的特性。
  • 功能已添加到 C# 6.0 中,如 this answer 中所述。

标签: c# .net namespaces static-methods


【解决方案1】:

如果您的意思是导入它以使其方法是全局的,则不。

不过,您可能想查看扩展方法。它们是静态方法,当它们的类的命名空间被导入时,它们会在它们的第一个参数的类型上显示为实例方法。在此处查看更多信息:http://msdn.microsoft.com/en-us/library/bb383977.aspx

【讨论】:

  • 哇,扩展方法!我错过了一个令人难以置信的功能!非常感谢!我的代码可以用这个更好地组成......
  • 正是这种类型的回应让我爱上了这个网站!如果可以的话,我会再次 +1。
  • 亲爱的克里斯,愿你能去布拉格——我欠你一杯啤酒!我无法表达我多么高兴知道这个我以前从未知道的功能!我现在正在用它把我可怕的代码变成真正的 OOP 眼睛糖果......
  • 很高兴能帮上忙,如果我在那里,也许我会带你去。
【解决方案2】:

您正在寻找的功能是在 C# 6.0 中添加的

这叫做“使用静态”。

更多解释和示例的链接如下: https://msdn.microsoft.com/en-us/magazine/dn879355.aspx

【讨论】:

    【解决方案3】:

    是的,你可以。 C# 6 引入了新的构造 - using static 指令可让您 导入一个类型的所有静态成员,以便您可以使用那些不合格的成员 :

    使用静态类名;

    例如:

    using System;
    
    using static System.Console;
    
    class Program
    {
        static void Main()
        {
            WriteLine("test");
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2016-03-02
      • 1970-01-01
      • 2012-02-23
      • 1970-01-01
      • 1970-01-01
      • 2012-03-06
      • 2020-11-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多