我知道还有喜欢这样的其他问题,但是它们没有回答我的问题。
在C#中,您将使用:
using System;
namespace Program
{
static void Main(string[] args)
{
Console.WriteLine("Helllo, World);
Console.ReadLine();
}
}
您使用using System;
不必这样做:
namespace Program
{
static void Main(string[] args)
{
System.Console.WriteLine("Helllo, World);
System.Console.ReadLine();
}
}
在Java中,是否有等效于C#的using System;
?
答案 0 :(得分:1)
评论正在探讨为什么这些语言的社区选择了不同的方法,而直接回答了这个问题:
在Java中,import
语句允许使用后缀*
来指示应将命名空间中的所有类导入并在当前文件中使用,并且不带任何前缀:
import java.util.*;
这基本上等同于类似的东西
using System.Collections.Generic;
但是,Java标准库和C#标准库的组织方式大不相同,因此没有与C#的using System
完全相同的声明。
但是,在Java中,java.lang
包始终是隐式导入的,并且java.lang
包含C#的System
中的许多内容,因此可以说Java使{{1 }} 隐式!
例如,在C#中,您需要using System
才能写using System;
,但是在Java中,您不需要Console.WriteLine("Hello, World!");
就可以写{{1} }。
Java还具有称为import java.lang.System;
的功能,您可以在其中导入类的成员,而不仅仅是类本身或包中的类。因此,您可以执行类似System.out.println("Hello, world!");
或import static
的操作,然后根据需要编写import static java.lang.System.out;
。
C#还具有一个称为名称空间别名的功能,您可以在其中从另一个名称空间导入单个名称,并可以随意选择重命名。因此,您可以写import static java.lang.System.*;
,然后根据需要写out.println("Hello, world!");
。
后两个选项在标准库中通常不使用,但可能在特殊情况下或设计为以这种方式使用的特殊类中使用。
答案 1 :(得分:1)
关于以下内容的附录
...但是为什么C#用户使用using语句?
简单:因为它们只有using
,没有Java导入。它是该语言的内建属性,类似于C#支持.Net平台,而Java(主要)支持JVM平台。
why does language A support feature X, but language B has Y
不会(通常,并不总是)导致很多其他问题,而是“因为这就是每个人想要拥有的东西”。