是否有办法在类/命名空间层次结构中声明静态方法,以便可以直接寻址该方法而无需引用其类名?例如,如果我有这个命名空间和类......
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);
......但这似乎不起作用。 intellisense在using语句中找不到静态类,所以我猜这只适用于名称空间。那么,有没有什么方法可以让我的代码知道我所指的静态类,而不是在每次调用其中一个静态方法时引用它?
感谢您的阅读。
答案 0 :(得分:8)
使用C# 6.0,您可以使用static import
执行此操作using static UsefulMethods.DataBaseStuff;
在那之前你不能。您必须使用静态方法的类名。
请参阅:New Language Features in C# 6
使用静态
该功能允许所有类型的可访问静态成员 进口,随后可以无限制地使用 代码:
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.Math将是一个 通常的例子。它还允许您直接指定 枚举类型的单个命名值,如System.DayOfWeek 上面的成员。