C# 是由Microsoft开发的一种新型编程语言,由于它是从C和C++ 中派生出来的,因此具有C++的功能 同时,由于是Microsoft公司的产品,它又同 VB一样简单。对于web开发而言,C#象 Java,同时具有Delphi的一些优点,C#是开发.NET框架应用程序的最好语言。
Visual Studio .NET 使开发人员能够快速创建下一代面向任何设备并与任何平台集成的 Internet 应用程序。通过最现代化的、功能最丰富的开发环境,Visual Studio .NET 向开发人员提供了用于在操作系统之间和语言之间集成解决方案的工具。利用 Visual Studio .NET,开发人员可将现有的业务逻辑方便地转换为可重复使用的 XML Web 服务、封装进程并使它们能够用于任何平台上的应用程序。开发人员可方便地包含任意数量的、可被编录并可用于许多独立的通用描述、发现和集成 (UDDI) 目录的 XML Web 服务,并为应用程序提供强大的服务和业务逻辑基础。
C# 特性:
C#是一种从C++和Java继承而来的,简单的,现代的,面向对象的语言.
2.它的目标是综合Visual Basic高产和C++底层高效的特性.
3.它是Microsoft Visual Studio7.0 的一部分.
4.Visual studio支持Vb,VC++,C++,Vbscript,Jscript.所有这些语言提供对Microsft .NET平台的访问.
5..NET包括一个Common Execution引擎和一个丰富的类库.
6.Microsofts JVM eqiv就是Common language(通用语言)运行库(CLR).
7.CLR支持不止一种语言,诸如 C#,VB.NET,Jscript,ASP.NET,C++.
8.源代码--->中间语言代码(IL)--->(JIT 编译器)机器码.
9.类和数据类型对所有.NET语言是通用的.
10.我们能够用C#开发控制台应用程序,Windows应用程序,Web应用程序.
11.在C#中微软处理了C++问题,比如内存管理,指针等.
12.它支持垃圾回收(无用内存回收),内存自动管理和其他许多特性.
C#的主要特点
A.简单
1.C#中指针已经消失.
2.不安全的操作,比方说直接内存操作不被允许了.
3.C#中"::"或"->"操作符是没用的.
4.因为它是基于.NET平台的,它继承了自动内存管理和垃圾回收的特点.
5.原始数据类型可变的数据范围象Integer,Floats等.
6.整形数值0和1不再作为布尔值出现.C#中的布尔值是纯粹的true和false值而且没有更多的"="操作符和"=="操作符错误."=="被用于进行比较操作而"="被用做赋值操作.
B.现代
1.C#建立在当前的潮流上,对于创建相互兼容的,可伸缩的,健壮的应用程序来说是非常强大和简单的.
2.C#拥有内建的支持来将任何组件转换成一个web service,运行在任何平台上的任何应用程序都可以通过互联网来使用这个服务.
C.面向对象的
1.C#支持数据封装,继承,多态和对象界面(即java中的interface关键字).
2.(int,float,double)在java中都不是对象,但是C#引入和结构体(structs)来使原始数据类型变成对象int i=1;String a=i Tostring();//转换(或者)Boxing
D.类型安全
1.在C#中我们不能进行不安全的类型转换象将double转换成boolean.
2.值类型(常量类型)被初始化为零值而引用类型(对象和类被编译器自动初始化为零值.
3.数组类型下标从零开始而且进行越界检查.
4.类型溢出将被检查.
E.相互兼容性
1.C#提供对COM和基于windows的应用程序的原始的支持.
2.允许对原始指针的有限制的使用.
3.用户不再需要显式的实现unkown和其它COM界面,这些功能已经内建.
4.C#允许用户将指针作为不安全的代码段来操作老的代码.
5.VB.NET和其它中间代码语言中的组件可以在C#中直接使用.
F.可伸缩性和可升级性
1..NET引入了零部件的概念,它们通过其"手册"具有自描述的功能.手册确立了零部件的身份,版本,语言和数字签名等.零部件不需要在任何地方注册.
2.要扩展我们的程序,我们只需要删除老的文件并用新的文件来升级它们.不需要注册动态链接库.
3.升级软件组件的过程只是一个错误探测的任务.对代码的修改能够影响现存的程序,C#在语言中支持版本修改.对界面和方法重载的支持使得复杂的程序框架能随着时间发展和进化.
结论
C#是一种现代的,类型安全的,面向对象的编程语言,它使得程序员能够快速而容易的为微软.NET平台开发解决方案.
Java语言。
相对于其他编程语音,Java有一个无庸置疑的优点:用户以及编译器第一次不必了解生成可执行代码的特定CPU细节。Java引入了一个编译代码中间层,叫做字节代码,并使用一个虚拟抽象的机器,而不是一个真实的机器。当Java编译器结束了一个源文件的编译后,你所得到的不是可以立即在一个给定平台上运行的代码,而是可以在任何真实的平台上运行的字节代码,唯一的条件就是这个平台要理解和支持Java。这些发展包含着一个文化的变革。作为一个开发人员,你只需要确定Java虚拟机(JVM)提供的抽象层,不同的OS销售商负责执行代码层,从而将中立于平台的字节代码映射到主机平台的机构中
Java模型的好处在哪里,首先,Java是一种先进的、面向对象的语言,包含了预防常见错误的内置功能,并在仅仅一两个对象中携带了许多经常需要用到的功能。与C++相比,Java更易于读写,不容易出错,而且更加美观,但是它速度较慢也不太灵活。想实现在任何软件和硬件平台上都可虚拟移植,Java尽可能少地使用了公分母模型,也就是说放弃了将每个平台开发到极限的能力。第二,虚拟机的概念本身就是可移植和可共用的,因此对于分布式环境来说是理想的。Java对于为非Windows平台开发代码是最好的语言
那么对于Windows平台来说,Java又怎么样呢?让Java适应Windows是不可能的,这是由于Sun的许可约束问题。但是Java实在是太吸引人了,Microsoft比谁都能更清楚这一点。因此,Microsoft又一次采取了“拿来主义”的手法,很好地利用了Java 的众多特性,隆重推出了Windows平台的新锐力量,它就是相当简单但十分强大的面向对象的C#编程语言。C#超过了C++,它天生就包含了.NET框架类库中的所有类,并使语法简单化。
可以说,Java具备的优点,C#都可以或者都将具备!
.NET平台将 C#作为其固有语言,重温了许多Java的技术规则。C#中也有一个虚拟机,叫做公用语言运行环境(CLRcommandlanguagereturntime),它的对象也具有同样的层次。但是 C#的设计意图是要使用全部的Win32 API甚至更多。由于C#与 Windows的体系结构相似,因此 C# 很容易被开发人员所熟悉。
Java的目的是要拯救分布式计算世界,C# 则不同。C#本质上是C++的进化产物,使用了包括声明、表达式及操作符在内的许多C++特征,但是 C#还有更多的增强功能,比如类型安全(type-Safe)、事件处理、碎片帐集、代码安全性等。在C#中,除了可以使用许多API(applicationprogramminginterface),更能使用.NET类。特别地是,我们可以处理COM的自动化和C类型的函数。
C#还让你调用无管理的代码,也就是在CLR引擎控制之外的代码。这种不安全的模式允许你操作原始指针来读和写内置碎片帐集控制以外的内存。
1. 大公司. 国内的 华为,zte,大唐 , 国际的 ibm,微软, 等到.. 这些公司要招人看的是这个人的潜力,能力,学习能力 等方面.. 想去这样的公司,好好学习,有好成绩就 事半功倍了.. 其他成绩不好,基础要好. 操作系统,编译原理,.. 数据结构,算法.. 这些都会, 月薪3k-10k ,绝对没问题..
2. 对于懒的学习的人,找个一般的小公司,去了就是干活的, 招聘的时候,要的是所谓的经验. 比如你会用jsp做网站, 可能很容易就找到一个做网站的工作, 一般工资 2k 左右.. 这样的人 c++ 还是 java 没什么区别..