在不命名类的情况下使用类中的静态函数

Sto*_*kid 7 c# namespaces class function

如何从类访问函数而不必每次都命名该类?我知道如何使用“using”,这样我就不必命名命名空间,但我希望有一种方法可以处理这个静态函数,这样我就可以像在同一个类中调用函数一样调用它们.

unt*_*led 8

使用静态 yournamespace.yourclassname;

然后调用没有类名的静态类方法;

例子:

Class1.cs

namespace WindowsFormsApplication1
{
    class Utils
    {
        public static void Hello()
        {
            System.Diagnostics.Debug.WriteLine("Hello world!");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

表格1.cs

using System.Windows.Forms;
using static WindowsFormsApplication1.Utils;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {

        public Form1()
        {
            InitializeComponent();
            Hello();    // <====== LOOK HERE
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


Leo*_*Leo 1

在 C# 中?不可能。因为它是一种完整的 OOP 编程语言,并且它被设计为与对象一起使用,所以您不能在对象范围之外使用函数。调用静态方法时,您必须指定该静态方法所在的类...

Class.StaticMethod();
Run Code Online (Sandbox Code Playgroud)

如果从同一个类中调用此方法,则只能使用简写符号...

StaticMethod();
Run Code Online (Sandbox Code Playgroud)

但请记住,您将无法访问实例成员,因为静态方法不属于对象的实例

根据评论更新

看起来可以调用静态成员,而不必指定在 C# 6 中声明它的类,并且您将能够直接在using语句中引用类...与 Java 类似...更多信息在这里