c#使用和Java导入之间的区别

c#使用和Java导入之间的区别,c#,java,asp.net,wpf,awt,C#,Java,Asp.net,Wpf,Awt,我知道在java中,我们使用*(星号)来导入包中的所有内容,如 import java.lang.*; 那么我们为什么不在C#中使用相同的*(星号)来导入所有内容呢?有没有像java中那样的方法来导入所有内容。 两者的区别是什么 import java.awt.*; 及 Javaimport所做的就是.NET所称的引用-在.NET中添加对程序集的引用允许您使用该程序集中定义的(公共)类型 C#只是一种访问这些类型的方法,而无需键入整个名称空间 您还可以使用该指令提供名称空间别名。在Java中

我知道在java中,我们使用*(星号)来导入包中的所有内容,如

import java.lang.*;
那么我们为什么不在C#中使用相同的*(星号)来导入所有内容呢?有没有像java中那样的方法来导入所有内容。 两者的区别是什么

import java.awt.*;


Java
import
所做的就是.NET所称的引用-在.NET中添加对程序集的引用允许您使用该程序集中定义的(公共)类型

C#只是一种访问这些类型的方法,而无需键入整个名称空间


您还可以使用该指令提供名称空间别名。

在Java中,如果没有*,则必须导入单个类。在C#中,使用指令是针对名称空间的(但不是任何子名称空间,即使用System;无法获得System.Windows.Forms)。因此,import java.awt.*提供的功能与使用System.Windows.Forms大致相同,因此实际上不需要在.Net中使用*。不管名称如何,都没有加载.class文件。你所做的就是省得自己打字。Java
import
允许您使用其短名称而不是完全解析的类名来引用类(例如,
String
而不是
Java.lang.String


C#
使用
与Java
导入
不同,如果它实际上向程序集添加了一些内容。类字节码是根据类加载器的需要加载的,而不是以前。

我认为这对于Java是不对的。在Java中,导入也是一种减少键入的方法。让编译器查看包和类是在其他地方完成的:在命令行上,在项目文件中(Maven、Ant、某些特定于IDE的文件),等等。我怀疑我们在这里是在吹毛求疵,但是C#using对程序集的添加很少,除非您认为它要求实现的程序集必须命名为引用。据我所知,实际上是引用修改了程序集。因此,在我看来,C#using和Java import对于同一个生物来说本质上是不同的名称。如果我在5年后阅读它,它对我很重要,可能对其他搜索我今天来到这一页的相同信息的人也很重要。此外,我还认为读者必须理解,如果引用列表中没有适当的程序集,添加using声明不足以以任何有意义的方式修改程序集。这就是清单中的内容,据我所知,这是其中任何一种都可以说影响程序集的唯一方式,因为使用只是源代码。
using System.windows.forms;