我可以做 "using namespace.class" 吗?

Can I do "using namespace.class"?

我想知道这个,因为我显然做不到。我添加了我的 .dll 作为参考并添加了 using myNamespace; 但是每当我想调用其中一个函数时,我都必须使用 myClass.myMethod(); 有什么我可以做的,这样我在调用过程时就不需要引用 class 名称了吗?所以我只需要 myMethod();

暂时不能。但在 C# 6.0 中,您将能够对 static 类.

使用 using 指令

例如:

using System.Console;
// ...
Write(4);

您可以看到所有功能的详细列表here

在当前的 C# 中,您无法以任何方式做到这一点。 using 只是将命名空间放入您的代码中,这样您就不必在每次需要时都显式地编写它。

如果您的 class 是 static 并且您使用的是 C# 6.0,您可以这样做:

using static System.Console;

private static void Main(string[] args)
{
    WriteLine("test");
}

正如其他答案已经解释的那样,这在 C# 6 之前是不可能的。但是,您可以使用允许您为类型创建自定义名称的别名来简化您的生活。这非常方便,例如当某些 class 的名称较长或出于其他原因时:

您可以通过将类型分配给 using Directive 中的名称来定义别名。您还应该了解其他一些事情:

  • The scope of a using directive is limited to the file in which it appears.

  • Create a using alias to make it easier to qualify an identifier to a namespace or type. The right side of a using alias directive must always be a fully-qualified type regardless of the using directives that come before it.

  • Create a using directive to use the types in a namespace without having to specify the namespace. A using directive does not give you access to any namespaces that are nested in the namespace you specify.

using util = MyNameSpace.MyVeryLongNameStaticUtilityClass;
using other = MyNameSpace.MyVeryLongNameOtherClass;

然后你就可以像这样使用它了:

private static void Main(string[] args)
{
    var result = util.ParseArgs(args);
    var other = new other();
}