0

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

using System.IO;

他们在整个过程中不断地这样做 - (而不是在顶部导入参考)。

System.IO.File.Exists();

除了必须输入更多代码之外,任何人都可以阐明区别是什么吗?我正在研究的系统是一个面向业务对象的系统 (CSLA),在没有这种方法的经验之前,有人可以推荐一种学习我继承的系统的好方法。我很感激你看不到我所拥有的系统,但如果有经验的人能提供一些见解,我将不胜感激。

问候。

4

4 回答 4

3

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

using语句只是帮助编译器在编译时找到引用类型的一种方式,在运行时之间没有区别;

using System.IO;

File.Exists();

System.IO.File.Exists();
于 2013-07-31T09:55:22.840 回答
1

除了必须输入更多代码之外,任何人都可以阐明区别是什么吗?

正如 Joachim 所说,这是一种编码标准/风格选择。

我个人usings用于大多数命名空间,但fully qualified names如果它在特定情况下使代码更清晰,我会使用它。以免产生歧义。

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

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

不要试图预先了解所有内容。当你需要知道的时候(当你做出改变时),了解你需要知道的东西。深入了解事物的位置,以便在需要处理它们时快速找到它们。

于 2013-07-31T10:01:43.027 回答
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

于 2013-07-31T10:07:00.393 回答
0

就个人而言,如果我只在类中使用该名称空间中的某物一次或两次,我喜欢使用全名。通过这种方式,它不会弄乱 IntelliSense,它可以帮助我专注于我在该特定类中真正关心的命名空间。

于 2013-08-02T15:58:35.937 回答