C# 为什么可以';我不能写IO.Directory.GetFiles吗?
我来自一个C# 为什么可以';我不能写IO.Directory.GetFiles吗?,c#,using-directives,C#,Using Directives,我来自一个VB.Net环境,在那里使用导入系统,然后使用IO.Directory.GetFiles(…)工作 另一方面,似乎使用系统不足以写入useIO.Directory而不使用System作为前缀。。唯一的解决办法似乎是 使用IO=System.IO 为什么? 示例代码: using System; using System.IO; namespace Test { class Program { static void Main(string[] args) {
VB.Net
环境,在那里使用导入系统
,然后使用IO.Directory.GetFiles(…)
工作
另一方面,似乎使用系统代码>不足以写入useIO.Directory
而不使用System作为前缀。
。唯一的解决办法似乎是
使用IO=System.IO代码>
为什么?
示例代码:
using System;
using System.IO;
namespace Test {
class Program {
static void Main(string[] args) {
System.Console.WriteLine(IO.Directory.GetFiles(System.Environment.CurrentDirectory)[0]);
}
}
}
编辑:我的问题不是如何让代码正常工作,而是“为什么我不能编写IO.Directory.GetFiles
?”添加
使用System.IO
你会有你期望的行为。C#在没有using指令(或完全限定)的情况下不会提供子名称空间。您所谈论的东西在C#中是不可能实现的,这可能是C#和vb.NET之间的差异
如果您正在将vb.Net代码转换为C#,那么使用此网站将对您大有帮助
福隆代码
System.IO.Directory.GetFiles(...)
或添加
using System.IO;
会为您做的+1很好,只是感兴趣也许您有任何关于此类要求的MSDN参考资料,这将是非常好的。当我编写IO.Directory.GetFiles时,@Matt:好的,但问题是为什么使用系统;不使用System作为前缀写入use IO.Directory是不够的。
,因此存在using
,但不允许访问子名称空间的具体类型,而不额外使用子名称空间,如IO.Directory.GetFiles()不使用usign System.IO
@nawfal:我的问题不是如何使用目录。*
,而是如何编写IO.Directory.*
在这种情况下,唯一的解决方法就是你自己在问题中发布的内容。这就是C#的做事方式。至于“为什么”是这样,我很无助,我从来没有被它困扰过。请记住,当您键入确切的类名时,您总是会在类名的右下方看到未添加名称空间的一个小指示。您可以将鼠标悬停在红色指示上进行扩展,然后执行所需操作。我想去掉System
前缀。@Clément,使用System.IO添加代码>到顶部的命名空间集合!