C#语言主要特性总结
作者:junjie 时间:2021-07-16 07:59:43
1.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平台开发解决方案.
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Java实现的计算最大下标距离算法示例
java操作elasticsearch的案例解析
JAVA发送HTTP请求的多种方式详细总结
JDK动态代理过程原理及手写实现详解
解决Mybatis-Plus操作分页后数据失效问题
Java 对象在 JVM 中的内存布局超详细解说
![](https://img.aspxhome.com/file/2023/6/103986_0s.png)
Java设计模式之抽象工厂模式(Abstract Factory)
![](https://img.aspxhome.com/file/2023/7/101767_0s.jpg)
RocketMQ4.5.2 修改mqnamesrv 和 mqbroker的日志路径操作
![](https://img.aspxhome.com/file/2023/0/60370_0s.png)
java项目实现统一打印入参出参等日志
MyBatis-Plus中最简单的查询操作教程(Lambda)
![](https://img.aspxhome.com/file/2023/7/73097_0s.png)
Spring3 整合MyBatis3 配置多数据源动态选择SqlSessionFactory详细教程
![](https://img.aspxhome.com/file/2023/6/61816_0s.png)
阿里云OSS域名配置及简单上传的示例代码
![](https://img.aspxhome.com/file/2023/1/79211_0s.png)
Java多线程-线程的同步与锁的问题
springboot整合kaptcha生成验证码功能
![](https://img.aspxhome.com/file/2023/6/71896_0s.png)
Android实现画板、写字板功能(附源码下载)
![](https://img.aspxhome.com/file/2023/4/111724_0s.jpg)
Android studio报: java.lang.ExceptionInInitializerError 错误
![](https://img.aspxhome.com/file/2023/7/88687_0s.png)
Android SDK Manager解决更新时的问题 :Failed to fetch URL...
详解JAVA中获取文件MD5值的四种方法
![](https://img.aspxhome.com/file/2023/1/78221_0s.png)