Main函数为什么是静态的

问题描述

工具是VisualStudio2010,用C#写控制台应用程序,新建项目后program.cs代码文件中的Main函数是静态,为什么是静态的呀!希望得到大家的帮助。

解决方案

解决方案二:
静态方法和非静态方法有什么区别?不用静态方法的话,用实例化方法,被实例化对象是什么呢?
解决方案三:
如果它是成员函数,那么谁来负责创建实例呢?
解决方案四:
我知道的是静态方法中的属性和方法可通过其类名被其他类访问,而非静态类必需利用其实例来访问其属性和方法。要是不用静态的话,用实例方法,还真是不知道实例化什么,所以就要用静态的?
解决方案五:
引用2楼gomoku的回复:

如果它是成员函数,那么谁来负责创建实例呢?

这个问句很好!!
解决方案六:
引用2楼gomoku的回复:

如果它是成员函数,那么谁来负责创建实例呢?

还真是不太明白,以前没注意这个问题,我基础现在不扎实
解决方案七:
引用5楼love_hbb的回复:

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

如果不是静态的,那么就要手动创建对象,之后调用Main方法。像这样:Programp=newProgram();p.Main();可是这些不需要你每次运行程序的时候都做一次,static的话,直接就调用,运行了。
解决方案八:
引用2楼gomoku的回复:

如果它是成员函数,那么谁来负责创建实例呢?

解决方案九:
噢,这个明白了,就是不用再newProgram了,反正这个类中就这么一个主函数,所以就用静态方法可以啦!对吗?
解决方案十:
反正这个类中就这么一个主函数,所以就用静态方法可以啦!对吗?————————————————————————————一个项目有一个主函数,这个函数是程序的入口,如果他不是静态的话,那么就得需要有人去实例化一个对象,之后才能调用这个函数,这个条件就限定了Main的属性必须是static的!
解决方案十一:
呵呵。必须有个带路的先走。
解决方案十二:
可以按上面的兄弟的理解,但是这个说白了就是微乳和其它编程语言的一个规范,静态好理解,但为什么它是入口了,这就需要约定了。
解决方案十三:
噢噢谢谢各位的帮助啊
解决方案十四:
跟随类,不需要实例化对象。
解决方案十五:
引用11楼tsapi的回复:

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

Whatis微乳?
解决方案:
应该说的是微软吧
解决方案:
静态只要用类名就可以调用了,非静态还要实例化,比较麻烦
解决方案:
引用14楼remember_me的回复:

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

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

引用5楼love_hbb的回复:引用2楼gomoku的回复:如果它是成员函数,那么谁来负责创建实例呢?还真是不太明白,以前没注意这个问题,我基础现在不扎实如果不是静态的,那么就要手动创建对象,之后调用Main方法。像这样:Programp=newProgram();p.Main();可是这些不需要你每次运行程序的时候都做一次,stat……

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

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

GoodIdea.
解决方案:
不需要实例化一个对象的执行入口点函数
解决方案:
学习了
解决方案:
Main函数是控制台的入口函数,因此使用静态函数
解决方案:
帮顶了!

时间: 2024-07-30 11:12:45

Main函数为什么是静态的的相关文章

c++-请问在这个约瑟夫问题中,把数组定义在main()函数前与下面程序中定义的数组方式 有什么异同?

问题描述 请问在这个约瑟夫问题中,把数组定义在main()函数前与下面程序中定义的数组方式 有什么异同? 请问在这个约瑟夫问题中,把数组定义在main()函数前与下面程序中定义的数组方式 有什么异同? 为什么在VC6.0中认为示例程序的数组错误,而在dev C++中却没事 #include <iostream> #include <iomanip> //调用setw()函数 using namespace std; //bool str[101]; int main() { int

《C语言编程初学者指南》一1.2 认识main()函数

1.2 认识main()函数 本小节首先介绍每个C程序开始的内容,也就是main()函数.首先,我想要用打比方的方式说明什么是函数.从编程的角度来讲,函数使你能够将逻辑上的一系列的动作(或程序语句)组织到一个名字之下.例如,假设你想要创建一个名为bakeCake的函数. 烘焙蛋糕的算法(过程)如下所示: 在用于搅拌的碗中,搅拌湿的成分(水.奶油.蛋汁等): 加入干的成分(面粉等): 将面糊铺满烤盘: 在烤箱中,用350度的温度烘焙30分钟. 注意,给你的函数起一个富有描述性的名称,将有助于任何人

C#难点逐个击破(4):main函数_C#教程

还记得读大学时初识计算机编程时的C语言,Main(){},那时还不明白入口函数是什么意思,只知道照抄书本上的示例,一行一行地跑printf看. 在C#中Main()属于主入口函数,我们知识C.C#属于编译语言,可以想象为一段程序最开始的头部部分,由Main()函数进入逐语句进行编译后执行.假如html页面也称作编程语言的话,那么它就属于从上到下一句一句(下载)执行:js也是由上到下执行,不过js相当诡异,变量作用域要特别对待:在asp.net中一般情况下是以Page_Load(object se

解析在main函数之前调用函数以及对设计的作用详解_C 语言

前几天为新员工写一个简单的测试框架,可让他们方便的写测试用例并且执行.期间遇到一个问题就是如何让他们增加测试用例而用不影响测试框架的代码?c++的单件模式可以解决这个问题,但是其中一个难点是要在main之前注册单件.c++可以通过构造函数来实现注册,c如何注册?最后查了下资料,原来可以定义在main之前调用的函数!有了这个特性可以改善c的模块化设计.特性介绍:如果想定义在main函数之前调用的函数,可以在函数的声明之后加上一句"__attribute__((constructor))"

class-[java]关于main函数的执行先后顺序

问题描述 [java]关于main函数的执行先后顺序 在这个文件在执行的时候先执行那个呢?,如果把InvolveMain类里的方法写成注释后面的又先执行哪个呢?求详细解释一下,谢谢谢谢. package exercise5;//整个文件的类名是E20//创建一个使用可变参数列表而不是普通的main()语法的main().//打印所产生的args数组的所有元素,并用各种不同数量的命令行参数来测试它class InvolveMain{ static void main(String...args){

opencv里main函数参数问题

问题描述 opencv里main函数参数问题 #include ""highgui.h""#include ""stdio.h""int main(int argc char** argv){ IplImage *img = cvLoadImage(argv[1]); cvNamedWindow(""Example1"" CV_WINDOW_AUTOSIZE); cvShowImage(

main函数带参数C程序设计模板

/* 一个main含参程序的C语言设计模板,只需在结构体初始化中输入各个参数的性质及内容,就可以自动将参数分拣入结构体中. 命令执行方式如: 程序名 -a 参数1 -b 参数2 程序名 -?[-h] */ #include "stdafx.h" #define MAX_PARA 6 struct parameter { int ID;//参数编号 int content_num;//本参数后带的选项数目 bool IShave_prefix;//暂只接受必须使用-xx之类的参数前缀.

C程序中如何调用main函数参数

main函数提供的含参原型如: int _tmain(int argc, _TCHAR* argv[]) { for(int i=0;i<argc;i++)  _tprintf(_T("%s\n"),argv[i]); return 0; } 或者如: int main(int argc, char **argv) { } linux下为: #include "/usr/include/stdio.h" int main(int argc, char **ar

main函数的参数(二)

图6-16中,argv[0]是程序名,argv[1]是r1的值,argv[2]是rs的值,argv[3]是屏幕的背景色.由于指针数组均存放字符串,所需的圆半径及背景色彩通过atoi()函数转换为整型.通过带参数的main()函数,我们可以为自己的程序设置口令,在运行程序的命令行中给出所需的口令,正确则继续,否则退出.程序图形输出如图6-17所示. [例6-30]将上述程序作修改,在程序的入口处添置密码,若给定密码正确,则显示图形.#include<graphics.h> #include &l