1

好的,让我解释一下:

每当您在 .Net 中开始一个类时,假设您有另一个已开发的项目被引用,该项目具有您需要使用的非静态类...

你有 2 个选项(我知道)

在你的类的顶部放置一个 using 意味着你不需要在每次需要它的类时显式地命名整个项目

using FooBarProj;

public FooBar MyMethod()
{
     FooBar fb = new FooBar();
     //Do stuff
     return fb;
} 

或者明确实现这些:

public FooBarProj.FooBar MyMethod()
{
     FooBarProj.FooBar fb = new FooBarProj.FooBar();
     //Do stuff
     return fb;
} 

这会产生有效的影响吗?无论是执行效率,编译效率,还是什么?或者它只是一个开发便利问题?

4

2 回答 2

1

编译代码后没有区别。

使用using语句,或者使用整个类的命名空间和名称,毕竟是一回事。

编译为 CIL 代码时,对类型的引用是一个单一的东西,每个引用都包含所有信息,无论您如何编写该引用。

引用具有不同名称的类

如果你愿意,你甚至可以重命名一个类,这样做:

using TheString = System.String;

现在您可以参考在代码中System.String使用名称TheString

所有这些都产生相同的编译代码

  • string
  • System.String
  • String(如果你放在using System;开头)
  • TheString(如果你放在using TheString = System.String;开头)

结论:所有using陈述只是为了方便。

于 2012-10-20T17:34:39.347 回答
0

我认为这是一个开发便利性问题。第一个版本在所有情况下都更好,除了在不同的命名空间中有类似的类名。当不同的命名空间中有相同的类名时,需要在类之前显式声明命名空间。Dog23.class1 和 dog45.class1。如果可行,则始终是第一个版本。它更短且可读。

于 2012-10-20T17:32:52.187 回答