我们知道使用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的功能了。当然这只是简化写法,翻译成中间语言或机器语言后是没有差别的。