![](/img/trans.png)
[英]Missing assembly references and/or directives “The type or namespace name could not be found”
[英]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.