高手请来,请教下C语言和C#的区别和联系

现在正在学习.net,请教下如题。
我晓得C是面向过程,C#是面向对象。
C语言也学了几年,能否帮我详细的介绍下两者的区别和联系
多谢
非常感谢大仙,但是我想知道的是C和C#的区别以及联系
至于C++的,别加上来了,看混了,能否针对这两个分析下

面向对象程序设计可以被视作一种在程序中包含各种独立而又互相调用的单位和对象的思想,这与传统的思想刚好相反:传统的程序设计主张将程序看作一系列函数的集合,或者直接就是一系列对电脑下达的指令。面向对象程序设计中的每一个对象都应该能够接受数据、处理数据并将数据传达给其它对象,因此它们都可以被看作一个小型的“机器”,或者说是负有责任的角色。

相对于C,这个语言在许多方面进行了限制和增强:

指针(Pointer)只能被用于不安全模式。大多数对象访问通过安全的引用实现,以避免无效的调用,并且有许多算法用于验证溢出,指针只能用于调用值类型,以及受垃圾收集控制的托管对象。

对象不能被显式释放,代替为当不存在被引用时通过垃圾回收器回收。
只允许单一继承(single inheritance),但是一个类可以实现多个接口(interfaces)。

C#比C++更加类型安全。默认的安全转换是隐含转换,例如由短整型转换为长整型和从派生类转换为基类。而接口同整型,及枚举型同整型不允许隐含转换,非空指针(通过引用相似对象)同用户定义类型的隐含转换必段被显式的确定,不同于C++的复制构造函数。

数组声明语法不同("int[] a = new int[5]" 而不是 "int a[5]")。
枚举位于其所在的命名空间中。

C#中没有模版(Template),但是在C# 2.0中引入了泛型(Generic programming),并且支持一些C++模版不支持的特性。比如泛型参数中的类型约束。另一方面,表达式不能像C++模版中被用于类型参数。
属性支持,使用类似访问成员的方式调用。
完整的反射支持。

C#并不被编译成为能够直接在计算机上执行的二进制本地代码。与Java类似,它被编译成为中间代码(Microsoft Intermediate Language),然后通过.NET Framework的虚拟机——被称之为通用语言运行时.NET CLR(Common Language Runtime)——执行。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-03-19
.net 人才现在很紧缺

C和C#没有什么必然的联系。

C语言的算法思路是和C#一样的.还包括 JAVA.C++.VB.....
当然.也就是说.学了C语言以后.学C#会容易上手很多.

C#里支持 窗体应用程序 和 网站 应该是最大的区别所在了。
当然还有很多的支持:泛型。继承。多态。...

用C语言写一些现在的应用软件显然不大现实.它一般用来编写系统和驱动.
而强大的C#和强大的VISUAL STUDIO可以很轻易的实现非常广泛的应用

当然.指针.在C#中被视为不安全的东西.
而C语言的灵魂也就在指针了.

用C#编出来的东西.需要.NET FRAMEWORK的支持
用C编出来的东西.几乎现行的操作系统都可以跑

一个在于编写出强大健壮的应用软件.
一个在于编写出这些软件跑起的平台.本回答被提问者采纳
第2个回答  2009-03-19
说简单一些
1、C是面向程序的,C#是面向对象的
2、C主要应用于嵌入式开发,底层开发,C#多应用于Windows/Web开发,表层开发
3、C#是与.net一起出生的,为的是与java抗衡
第3个回答  2009-03-19
学习了
相似回答