首页 > 技术文章 > Winfrom和控制台中static修饰方法的问题

dfyg-xiaoxiao 2014-02-12 18:21 原文

在编写winform程序时,当写完方法名后,按Shift+Alt+F10(vs自动生成方法框架)后生成的方法是实例方法,而当手动为该方法添加static修饰符后,程序仍能正常运行.


而在控制台中,写完方法名,按Shift+Alt+F10后,vs自动生成的方法为静态方法,当去掉static修饰符后不能正常运行。


为什么会出现这种情况呢?理解这个问题可以通过反编译工具来解决!


 WinForm窗体中实例方法 可以直接调用
当用反编译工具查看时候,编译器会用当前类的对象this对其进行调用
private void Play(string str){}
 
反编译工具:
this.Play(str);

当在方法中添加static后,其为静态方法,可以直接调用
private static void Play(string str){}

反编译工具查看:
Play(str);


控制台中静态方法要经过类名调用才可执行

静态方法,在本类中可以直接调用


//以上为简单理解,其中还有些问题没能解决,例如【为何vs自动生成方法框架存在差异】,也希望知道的可以帮助解决下,先行谢过了!


推荐阅读