命名空间与物理编码?

时间:2011-08-10 20:01:40

标签: c# class namespaces

  

可能重复:
  Using Statements vs Namespace path? C#

我只想知道在C#类顶部包含命名空间与在程序代码中实际定义它之间的区别。

所以:

using System.Windows;

或者

System.Windows.MessageBox.Show();

将命名空间加载整个库还是只使用所需的数据?

对不起,如果看起来有点混乱。

3 个答案:

答案 0 :(得分:4)

您需要区分命名空间和程序集。他们是非常不同的东西。

using指令谈论命名空间 - 而引用MessageBox的两种方式将产生完全相同的代码。使用产生最可读代码的代码 - 通常使用using指令和短名称。

答案 1 :(得分:1)

第一个更容易阅读。你应该赞成可读性。我不认为有任何编译或加载的好处,如果有我在500kloc项目中没有注意到它。

答案 2 :(得分:0)

如果某些标识符不明确,请直接在语句中写入完整的命名空间。

using System.Windows.Forms;
using System.ServiceModel.Channels;

...

var msg = new Message(); // ambiguous
var msg1 = new System.Windows.Forms.Message(); // OK
var msg2 = new System.ServiceModel.Channels.Message(); // OK