我们知道使用static方法写静态方法,在使用的时候直接类名.方法();
比如class类:MyHelpper有静态方法
/// <summary> 什么也不做</summary>
public static void DoNothing(string description = "什么也不做")
{
//什么也不做
}
使用的时候MyHelpper.DoNothing()即可,不需要实例化MyHelpper类。但是这样还是感觉太臃肿了,因此C#(6.0)新增using static语法,using static仅仅是编译器的语法糖,帮助我们简化代码的,和之前的写法并无任何本质上的差异,编译后是无任何差别的。
using static[class],跟进的是类名,不是命名空间。这一点和引用命名空间不同,同时引用的类必须是静态的,类是静态,里面的方法当然也全部是静态方法。例如:
namespace Functions
{
static class GloableFunction
{
internal static void Dowork()
{
//dowork
}
}
}
//------------
using System.Windows.Forms;
using static Functions.GloableFunction;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Dowork();//可以直接使用了
}
}
}
老的C#语法,这样简化写法可能只能通过继承来实现,还不能多重继承,这样C#可以实现类似VB中module的功能了。当然这只是简化写法,翻译成中间语言或机器语言后是没有差别的。