调用静态方法需要附加命名空间和类型名前缀。例如在调用System.Console.WriteLine时,虽然调用的方法是WriteLine(),且当前上下文无其他同名方法,但仍然必须附加命名空间(System)和类型名(Console)前缀。可利用C#6.0新增的using static指令避免这些前缀,如以下代码
using static System.Console;
namespace ListNode
{
class HelloWorld
{
static void Main()
{
string firstname;
string lastname;
WriteLine("Hey you!");
Write("Enter your first name:");
firstname = ReadLine();
Write("Enter your last name:");
lastname = ReadLine();
WriteLine($"Your full name is {firstname} {lastname}");
}
}
}
using static指令需要添加到文件顶部,即放在namespace之前,每次使用System.Console类的成员,都不需要再添加System.Console前缀。相反,直接使用其中的方法名即可。注意该指令只支持静态方法和属性,不支持实例成员。类似的,using指令用于省略命名空间前缀(例如System)。和using static不同,using作用于它所在的整个文件(或命名空间),而非仅作用于静态成员。使用using指令,不管在实例化时,在调用静态方法时,还是在使用C#6.0新增的nameof操作符时,都可省略对命名空间的引用。