c语言中函数和c#中方法都有哪些不同
C语言基本来说是面向过程的语言,而C#基本是完全面向对象的语言。先不管编译等内容,只考虑语法层面。以C++为过度,C语言的函数相当于C++的全局函数,而C#中的方法相当于C++中的成员函数。其实要说不同就只是编程理念的不同,C#用的是面向对象的思想。类的方法也并不一定需要特定对象,C#中使用静态类的方法就和C中的函数差不多了(相当于只是函数名被“.”分成了两部分。而C语言如果要实现类的方法则可以用结构体+函数指针来模拟面向对象的方式。简单来说,C中绝大多数函数都有参数,C#中面向对象的理念(当然远远不止)就是把其中的某个参数作为一个对象提取出来然后直接对其操作,不需要C的函数那样值传递指针传递什么的,基本上所有东西都成引用了。不太了解题主主要是问的哪方面,有疑问欢迎补充。
■网友
不清楚你到底想问什么
■网友
这个问题是不是太大了点?不考虑编译后的(字节或机器码)编码的不同,我的理解楼主是还没有彻底的理解面向过程的语言与面向对象的语言。就功能性而言,这两者并无区别。如果深入到汇编或机器码,他们编译后在代码的前段都应该对应了机器码的一个代码跳转指令。站在程序设计的角度,他们的区别也可以分为很多方面:1、作用域或可访问性除非定义为内部函数,在引用了正确的头文件的情况下,C中的函数是可以在代码的任何位置所使用的。而C#中的方法必须隶属于一个类,只有在这个类的内部在可以在不指定类名(静态方法)或实例名(实例方法)的情况下使用这个方法。2、C#作为面向对象的语言,其方法的修饰符的语法更为复杂例如:可访问性的控制,可以使用public,private,protected,internal等修饰符。在C中完全不存在这一语法。3、C#方法支持重载以经典的示例,如果想实现一个加法运算,分别是2个、3个、4个数相加,在C中必须写3个完全不同名称的函数。int Sum2(int a,int b)int Sum3(int a,int b,int c)int SUm4(inta,int b,int c, int d)而在C#中,可以使用同一名称。int Sum(int a,int b)int Sum(int a,int b,int c)int Sum(inta,int b,int c, int d)编译器在编译时能够根据你所传递的参数自动判断使用哪一个函数。4、C#从语言的角度,支持更多先进和有利于程度开发的特殊语法比如:缺省参数,可变参数。例如,上面的救命中在c#中可以用可变参数实现。int Sum(params int x)这样一来,只需一个函数便可替代上述3个(其实是无穷多个,可以传递任意数量的整数)函数的功能。这个可能有更多,我有段时间没做C#开发了,不知道C#的亲自是否支持更多的语言特性。暂时总结到这……
■网友
C语言基本来说是面向过程的语言,而C#基本是完全面向对象的语言。先不管编译等内容,只考虑语法层面。以C++为过度,C语言的函数相当于C++的全局函数,而C#中的方法相当于C++中的成员函数。http://www.elsyy.com上面有挺丰富教程的哦
■网友
给你一个很好理解的说法。C#的对象方法比C的方法多一个参数this。即C#的方法是属于某个对象的,而拥有者的地址实际上就是这个函数的第一个参数。C就简单了,函数没有拥有者,只能影响参数以及一些全局变量。而C#就可以更改拥有者的属性了
■网友
我是个c语言的初学者,我查阅了资料了解到:c#是纯面向对象的语言,风格柔和,和java有异曲同工之妙。c#没有指针和引用,而c语言很注重指针的应用。总之各有千秋,在应用方面也没有什么可比性。
推荐阅读
- 长寿花怎么养护?掌握两大方法,乖乖花开“爆盆”,花香四溢!
- 有啥方法,网站,项目可以自己练习计算广告学
- 直播会成为品牌传播的另一个途径么有哪些可行的方法感觉有戏又没头绪好捉急。
- |邳州市岔河镇探索创新工作方法以“三个凝聚”助力统战工作提质增效
- 小孩|手术矫正要20万,有什么可以不动手术的方法?小孩有点地包天
- 孩子|小孩发烧的处理方法有物理降温与药物退烧!但很多新手父母不会
- 中兴努比亚 Z5 的边框到底有多窄
- 捷径|学会这套方法,考试高分不难高考历史复习有“捷径”
- 高血糖|71岁老人血糖从13.1降回正常,学会他的降糖方法, 你或也可以做到
- 乙肝|有乙肝不要怕,54岁大姐乙肝17年,肝没硬化,她的养肝方法可借鉴
