当前位置:编程学习 > C#/ASP.NET >>

Main函数为什么是静态的

工具是Visual Studio 2010,用C#写控制台应用程序,新建项目后program.cs代码文件中的Main函数是静态,为什么是静态的呀!希望得到大家的帮助。 --------------------编程问答-------------------- 静态方法和非静态方法有什么区别?
不用静态方法的话,用实例化方法,被实例化对象是什么呢? --------------------编程问答-------------------- 如果它是成员函数,那么谁来负责创建实例呢? --------------------编程问答-------------------- 我知道的是静态方法中的属性和方法可通过其类名被其他类访问,而非静态类必需利用其实例来访问其属性和方法。
要是不用静态的话,用实例方法,还真是不知道实例化什么,所以就要用静态的? --------------------编程问答--------------------
引用 2 楼 gomoku 的回复:
如果它是成员函数,那么谁来负责创建实例呢?

这个问句很好!! --------------------编程问答--------------------
引用 2 楼 gomoku 的回复:
如果它是成员函数,那么谁来负责创建实例呢?

还真是不太明白,以前没注意这个问题,我基础现在不扎实 --------------------编程问答--------------------
引用 5 楼 love_hbb 的回复:
引用 2 楼 gomoku 的回复:
如果它是成员函数,那么谁来负责创建实例呢?

还真是不太明白,以前没注意这个问题,我基础现在不扎实
如果不是静态的,那么就要手动创建对象,之后调用Main方法。

像这样: Program p=new Program();
p.Main();
可是这些不需要你每次运行程序的时候都做一次,static的话,直接就调用,运行了。 --------------------编程问答--------------------
引用 2 楼 gomoku 的回复:
如果它是成员函数,那么谁来负责创建实例呢?


--------------------编程问答-------------------- 噢,这个明白了,就是不用再new Program了,反正这个类中就这么一个主函数,所以就用静态方法可以啦!对吗? --------------------编程问答-------------------- 反正这个类中就这么一个主函数,所以就用静态方法可以啦!对吗?

————————————————————————————

一个项目有一个主函数,这个函数是程序的入口,如果他不是静态的话,那么就得需要有人去实例化一个对象,之后才能调用这个函数,这个条件就限定了Main的属性必须是static的! --------------------编程问答-------------------- 呵呵。必须有个带路的先走。 --------------------编程问答-------------------- 可以按上面的兄弟的理解,但是这个说白了就是微乳和其它编程语言的一个规范,静态好理解,但为什么它是入口了,这就需要约定了。 --------------------编程问答-------------------- 噢噢 谢谢各位的帮助啊 --------------------编程问答-------------------- 跟随类,不需要实例化对象。

--------------------编程问答--------------------
引用 11 楼 tsapi 的回复:
可以按上面的兄弟的理解,但是这个说白了就是微乳和其它编程语言的一个规范,静态好理解,但为什么它是入口了,这就需要约定了。


What is 微乳? --------------------编程问答-------------------- 应该说的是微软吧 --------------------编程问答-------------------- 静态只要用类名就可以调用了,非静态还要实例化,比较麻烦 --------------------编程问答--------------------
引用 14 楼 remember_me 的回复:
引用 11 楼 tsapi 的回复:
可以按上面的兄弟的理解,但是这个说白了就是微乳和其它编程语言的一个规范,静态好理解,但为什么它是入口了,这就需要约定了。


What is 微乳?


就是胸小的意思 --------------------编程问答-------------------- 只有声明为静态的,在编译的时候,编译器才能把他编译到exe文件中,在执行的过程中,操作系统在exe文件中才能找到执行的入口,要不然,你说从哪开始执行呢?? --------------------编程问答--------------------
引用 6 楼 kingdom_0 的回复:
引用 5 楼 love_hbb 的回复:

引用 2 楼 gomoku 的回复:
如果它是成员函数,那么谁来负责创建实例呢?

还真是不太明白,以前没注意这个问题,我基础现在不扎实
如果不是静态的,那么就要手动创建对象,之后调用Main方法。

像这样: Program p=new Program();
p.Main();
可是这些不需要你每次运行程序的时候都做一次,stat……


这样是不行的,在C#里Main()函数也是在一个类中,想p.Main()这样调用,将这代码写在其他类里根本没法编译通过,写在本类里面会栈溢出。另外,所有的程序都是从Main()开始的,在这之前根本不可能实例化那个Program,也就更不可能利用其对象去调用Main()函数了 --------------------编程问答-------------------- 因为它要保持时时刻刻都在~ --------------------编程问答-------------------- 胸小是贫乳吧???? --------------------编程问答--------------------
引用 17 楼 karascanvas 的回复:
引用 14 楼 remember_me 的回复:

引用 11 楼 tsapi 的回复:
可以按上面的兄弟的理解,但是这个说白了就是微乳和其它编程语言的一个规范,静态好理解,但为什么它是入口了,这就需要约定了。


What is 微乳?


就是胸小的意思


Good Idea. --------------------编程问答-------------------- 不需要实例化一个对象的执行入口点函数 --------------------编程问答-------------------- 学习了 --------------------编程问答-------------------- Main函数是控制台的入口函数,因此使用静态函数 --------------------编程问答-------------------- 帮顶了!
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,