C++的main函数中可以直接调用同类中的非静态方法, 而在C#中只可以调用实例化对象的方法或者静态方法??

该如何理解这种不同??

C++一般所说的 main 函数根本就不是类成员函数,哪来这种不同追问

那为什么在C#的main函数中,不能直接调用同类中的方法呢?
不是说在类中,可以直接访问类成员吗?

追答

因为 C# 的 Main 函数是静态成员函数,调用 Main 函数时还没有构造一个对象

追问

我的意思是,为什么在C#的main函数里面不能直接调用(不用实例化对象)main函数所在类中的非静态方法???不是说,在一个类中,可以直接访问类的成员吗?

追答

非静态方法可以不用实例化对象?恕我受C++毒害太深,无法相信这种说法

温馨提示:内容为网友见解,仅供参考
无其他回答

C#中,静态类和非静态类的区别是什么?
静态构造函数不可被直接调用,当创建类实例或引用任何静态成员之前,静态构造函数被自动执行,并且只执行一次。非静态类需要你自己去实例化加载它,才能调用 c#静态类和非静态类的区别 静态类: static 关键字 调用 类名.方法 在静态方法中只能访问静态成员 在静态类中只能有静态成员 在非静态类...

静态方法怎么调用
1.static方法是类中的一个成员方法,属于整个类,即不用创建任何对象也可以直接调用!static内部只能出现static变量和其他static方法!而且static方法中还不能使用this...等关键字..因为它是 属于整个类!2.静态方法效率上要比实例化高,静态方法的缺点是不自动进行销毁,而实例化的则可以做销毁。3.静态方法...

C#中为啥不能在函数里设置静态变量?
因为机制的关系。其实C#这个可以理解为是替代C++中宏的东西,那么定义宏当然不能在函数里定义了。VB我不是很清楚,但是c#的静态变量是在对象生成的时候分配内存空间的,而不是函数执行的时候。如果你在函数里定义,那么这个变量就需要在函数执行的时候分配内存空间,这是C#不允许的,至于为什么不允许,个人...

低分麻烦大家给我做个main方法总结
Main()函数必须封装在类或结构里来提供可执行程序的入口点。C#采用了完全的面向对象的编程方式,C#中不可以有像C++那样的全局函数。 2. Main()函数必须为静态函数(static)。这允许C#不必创建实例对象即可运行程序。 3. Main()函数保护级别没有特殊要求, public,protected,private等都可,但一般我们都指定其为public。

类中静态方法和实例方法的区别
1、调用方式上静态方法依赖于类,通过类.静态方法调用;实例方法依赖于类的对象,需要创建对象后,对象.实例方法使用 2、使用上实例方法内部不能定义静态变量,会出现编译错误;实例方法可以直接调用静态方法;静态方法内部可以定义和使用实例变量,静态方法无法直接调用实例方法(因静态方法加载时类还没有实例...

为什么要实例化对象
当然,这不包括静态对象,静态对象是可以直接调用的。再有,每次实例化其实都是一个新建的过程 例如Object a = new Object();这句话,你可以写无数次,只要每次起到名字不同,就会在内存中创建无数个Object对象,这畅在调用其中任意一个的时候互不干扰。其实简单的说,对象的引用和变量引用差不多,...

C中的主函数是main() C#中的是staitc void main (strint[] ages) 学完...
就按你的标题来说,C语言中的void main()空类型与主函数程序入口不是都可以在C#里面使用么?如果完全相同的话也不会有C#一说了 至于说学完C再学C++或着C#是因为许多东西是在学C时候讲解,而C++和C#的时候不再做解释的 比如 补码形式等等...我的亲身体验就是在不懂程序的时候我会看不懂C++ 而...

C++中main函数内的变量是全局的么?
2、有参函数。在调用函数时,在主调函数和被调用函数之间有数据传递。也就是说,主调函数可以将数据传递给被调用函数使用,被调用函数中的数据也可以带回来供主调函数使用。在C语言当中,一个程序,无论复杂或简单,总体上都是一个“函数”;这个函数就称为“main函数”,也就是“主函数”。比如有...

public final static 。。。是什么意思?
静态函数与普通函数不同,它只能在声明它的文件当中可见,不能被其它文件使用。静态函数的例子: \/\/Example 4#include <iostream.h>static void fn();\/\/声明静态函数void main(){ fn();}void fn()\/\/定义静态函数{ int n=10; cout<<n<<endl;}定义静态函数的好处:静态函数不能被其它文件所用; 其它文件中...

C# 类没有实现接口中的所有方法 为什么通过了编译
在C++中,含有纯虚拟函数的类称为抽象类,它不能生成对象。 凡是包含纯虚函数的类都是抽象类。 抽象类是不完整的,并且它只能用作基类。它与非抽象类的不同: 1、抽象类不能直接实例化,并且对抽象类使用 new 运算符是编译时错误。虽然一些变量和值在编译时的类型可以是抽象的,但是这样的变量和值...

相似回答
大家正在搜