指令和装配参考

本文关键字:参考 指令 | 更新日期: 2023-09-27 18:25:33

我在工作中继承了一个旧的.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,而且它可以帮助我专注于我在那个特定类中真正关心的名称空间。