我在工作中继承了一个旧的.NET 2.0 C#系统,目前正在通过庞大的代码库进行筛选。当我毕业时,我对现有开发人员为什么做某些事情,特定方式感兴趣。以前开发人员的一个特殊习惯是,而不是像这样在类顶部导入引用 -
using System.IO;
他们始终如一地这样做 - (而不是在顶部导入参考)。
System.IO.File.Exists();
除了必须输入更多代码之外,还有人可以解释一下差异是什么?我正在研究的系统是一个面向业务对象的系统(CSLA),并且没有这种方法的先前经验,有人可以推荐一种很好的方法来学习我继承的系统。我很感激你看不到我所拥有的系统,但有经验的人会对此有所了解。
问候。
答案 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混乱,它可以帮助我专注于我在该特定类中实际关注的命名空间。