繁体   English   中英

指令和汇编参考

[英]Directives and Assembly References

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

using System.IO;

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

System.IO.File.Exists();

除了必须输入更多代码之外,还有谁能阐明一些区别? 我正在使用的系统是面向业务对象的系统(CSLA),并且对该方法没有经验,因此有人可以推荐一种学习我继承的系统的好方法。 我感谢您看不到我拥有的系统,但是有经验的人的一些见识将不胜感激。

问候。

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

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

using System.IO;

File.Exists();

System.IO.File.Exists();

除了必须输入更多代码之外,还有谁能阐明一些区别?

正如Joachim所说,这是编码标准/样式选择。

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

此外,我已经看到了一些团队使用usings为.NET类型和fully qualified names ,他们已经制定了类型或非常具体scarse类型的球队并不总是知道的。 使用fully qualified names表示这种类型很少见,并且它是它所在的名称空间,因此您不必去寻找它。

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

不要试图先了解所有内容。 了解需要知道的内容(何时进行更改)。 收集有关事物位置的高级知识,以便您在需要处理时可以快速找到它们。

我通常更喜欢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任何理由

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM