是否有可能在静态类中引用方法而不引用类

本文关键字:引用 方法 有可能 静态类 是否 | 更新日期: 2023-09-27 17:54:02

是否有一种方法可以在类/命名空间层次结构中声明静态方法,使该方法可以直接寻址而无需引用其类名?例如,如果我有这个命名空间和类…

namespace UsefulMethods
{
    public static class DataBaseStuff
    {
        public static DataTable GetDataTable(String command, SqlConnection conn)
        {
            dt = new DataTable();
            dostuff...
            return dt;
        }
    }
}

然后我写一些代码,使用这个类,我把语句…

using UsefulMethods;

…在我的代码的顶部,我可以得到一个DataTable返回给我…

DataTable myDataTable = DataBaseStuff.GetDataTable(command, conn);

我想也许我可以用using语句来引用静态类,就像…

using UsefulMethods.DataBaseStuff;

…这样我就可以在没有类名的情况下引用方法了,就像这样…

DataTable myDataTable = GetDataTable(command, conn);

…但这似乎行不通。智能感知在using语句中找不到静态类,所以我猜这只适用于名称空间。有没有办法让我的代码知道我引用的是哪个静态类而不是每次调用静态方法时都引用它?

感谢您的阅读。

是否有可能在静态类中引用方法而不引用类

在c# 6.0中,您可以通过静态导入

来实现这一点
using static UsefulMethods.DataBaseStuff;

在那之前你不能。静态方法必须使用类名。

参见:c# 6中的新语言特性

使用静态<<p> /strong>

该特性允许类型的所有可访问的静态成员为进口,使它们在随后的使用中没有资格代码:

using static System.Console;
using static System.Math;
using static System.DayOfWeek;
class Program
{
    static void Main()
    {
        WriteLine(Sqrt(3*3 + 4*4)); 
        WriteLine(Friday - Monday); 
    }
}

当你有一组与a相关的函数时,这非常有用你一直在用的某个域。系统。数学是一个这是一个常见的例子。它还允许您直接指定枚举类型的单个命名值,如System。DayOfWeek以上成员。