【问题标题】:Directives and Assembly References指令和程序集参考
【发布时间】:2013-07-31 09:47:27
【问题描述】:

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

using System.IO;

他们自始至终都这样做 - (而不是在顶部导入参考)。

System.IO.File.Exists();

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

问候。

【问题讨论】:

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


    【解决方案1】:

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

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

    using System.IO;
    
    File.Exists();
    

    System.IO.File.Exists();
    

    【讨论】:

      【解决方案2】:

      任何人都可以阐明区别是什么 需要输入更多代码吗?

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

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

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

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

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

      【讨论】:

        【解决方案3】:

        我通常更喜欢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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            猜你喜欢
            • 2014-01-09
            • 2023-04-01
            • 2016-11-23
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多