在编写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自动生成方法框架存在差异】,也希望知道的可以帮助解决下,先行谢过了!