指令和装配参考

时间:2013-07-31 09:47:27

标签: c# .net c#-2.0 csla

我在工作中继承了一个旧的.NET 2.0 C#系统,目前正在通过庞大的代码库进行筛选。当我毕业时,我对现有开发人员为什么做某些事情,特定方式感兴趣。以前开发人员的一个特殊习惯是,而不是像这样在类顶部导入引用 -

using System.IO;

他们始终如一地这样做 - (而不是在顶部导入参考)。

System.IO.File.Exists();

除了必须输入更多代码之外,还有人可以解释一下差异是什么?我正在研究的系统是一个面向业务对象的系统(CSLA),并且没有这种方法的先前经验,有人可以推荐一种很好的方法来学习我继承的系统。我很感激你看不到我所拥有的系统,但有经验的人会对此有所了解。

问候。

4 个答案:

答案 0 :(得分:3)

这只是一种风格选择。有些人喜欢使用全名来了解本地类型名称不会与系统类型发生冲突。

using语句只是帮助编译器在编译时找到引用类型的一种方法,运行时之间存在 no 差异;

using System.IO;

File.Exists();

System.IO.File.Exists();

答案 1 :(得分:1)

  

任何人都可以了解其他差异是什么   必须输入更多代码?

这是Joachim所说的编码标准/风格选择。

我个人对大多数名称空间使用usings,但如果在特定情况下使代码更清晰,则会使用fully qualified names。如避免含糊不清。

此外,我看到一些团队使用usings表示.NET类型,fully qualified names表示他们已开发的类型或团队并不总是知道的非常具体的稀疏类型。使用fully qualified names表示这种类型很少见,这就是它所在的命名空间,所以你不必去寻找它。

  

有人可以推荐一种学习系统的好方法   我继承了

不要试图预先了解所有事情。了解您需要知道什么(当您进行更改时)。深入了解事物的位置,以便在需要处理时快速找到它们。

答案 2 :(得分:1)

我通常更喜欢using语句,但有些地方可能会使用它。

考虑以下

namespace MyNamespace
{
    public class File
    {
         public static bool Exists()
         {
             return false;
         }
    }
}

然后使用

using System.IO;
using MyNamespace;

File.Exist();//this is now ambigious

在这种情况下,您必须使用System.IO.File.Exist();

或者

using System.IO;
using MyFile = MyNamespace.File;
File.Exist();//this is call is not ambigious since File means System.IO.File only

除了这些之外,我没有找到任何理由使用全名而不是using statements

答案 3 :(得分:0)

就个人而言,我喜欢使用全名,如果我只是在该类名称空间中使用一次或两次。这样,它不会使IntelliSense混乱,它可以帮助我专注于我在该特定类中实际关注的命名空间。