1)好吧,您也可以在Java中执行相同的操作:
import java.util.*;
import java.io.*;
...
InputStream x = ...;
是否InputStream
来自java.util
或java.io
?当然,您可以选择不使用该功能。
现在,从 理论上讲, 我意识到这意味着当您使用文本编辑器进行查看时,您无法确定类型来自C#的位置……但是实际上,我认为这并不是问题。您 实际上 多久查看一次代码,却无法使用Visual Studio?
2)当然,您也可以在.NET中使用相同的约定- 虽然我没有空目录,但是我确实可以使用…。因此,如果我要创建一个默认名称空间为XY的项目,然后X.Y.Foo
将在中Foo.cs
,而XYZBar将在中Z\Bar.cs
这也是Visual Studio默认情况下的工作-如果创建子文件夹,它将使用基于项目默认值和文件夹结构的名称空间来创建新类。
当然,您也可以在任何旧文件中声明类型-但是 大多数 人会遵循使用相应文件名声明类型的常规约定。在泛型使委托声明变得更加罕见之前,我曾经有一个Delegates.cs
文件,其中包含特定命名空间的所有委托声明(而不是拥有一堆单一声明文件),但是如今这已不再是问题了。