C#与C/C++之别一
来源:互联网 发布:mac 迅雷影音 编辑:程序博客网 时间:2024/05/05 10:56
现在为了工作的需要,需要深入学习c#,现记录C#和C/C++的区别,以方便以后对比和查阅,记录的资料参照《C#高级编程》(第七版)!
内联
一些开发人员可能会担心,在上一节中,我们列举了许多情况,其中标准C#编码方式导致了大材小用,例如,通过属性访问字段,而不是直接访问字段。这些额外的函数调用是否会增加系统开销,导致性能下降?其实,不需要担心这种编程方式会在C#中带来性能损失。C#代码会编译为IL,然后在运行时JIT编译为本地可执行代码。JIT编译器可生成高度优化的代码,并在适当的时候随意地内联代码(即,用内联代码来替代函数调用)。如果实现某个方法或属性仅是调用另一个方法,或返回一个字段,则该方法或属性肯定是内联的。但要注意,在何处内联代码完全由CLR决定。我们无法使用像C++中inline这样的关键字来控制哪些方法是内联的。
静态构造函数
C#的一个新特征是也可以给类编写无参数的静态构造函数。这种构造函数只执行一次,而前面的构造函数是实例构造函数,只要创建类的对象,就会执行它。
class MyClass
{
static MyC1ass()
{
// initialization code
}
// rest of class definition
}
编写静态构造函数的一个原因是,类有一些静态字段或属性,需要在第=次使用类之前,从外部源中初始化这些静态字段和属性。
注意,无参数的实例构造函数与静态构造函数可以在同一个类中同时定义。尽管参数列表相同,但这并不矛盾,因为在加载类时执行静态构造函数,而在创建实例时执行实例构造函数,所以何时执行哪个构造函数不会有冲突。
只读字段
常量的概念就是一个包含不能修改的值的变量,常量是C#与大多数编程语言共有的。但是,常量不必满足所有的要求。有时可能需要一些变量,其值不应改变,但在运行之前其值是未知的。C#为这种情形提供了另一种类型的变量:只读字段。
readonly关键字比const灵活得多,允许把一个字段设置为常量,但还需要执行一些计算,以确定它的初始值。其规则是可以在构造函数中给只读字段赋值,但不能在其他地方赋值。只读字段还可以是一个实例字段,而不是静态字段,类的每个实例可以有不同的值。与const字段不同,如果要把只读字段设置为静态,就必须显式声明它。
- C#与C/C++之别一
- c#学习笔记之五 C与C#在几种主要数据结构在上区别 数组和枚举
- C与C++的11大区别
- Python 与C/C++ 的小区别
- objective-c之类别与扩展
- C#与C++、Java之比较概览
- C#与C++、Java之比较概览
- C#与C++、Java之比较概览
- C陷阱与缺陷之(一)
- C 杂谈之 指针与数组 (一)
- C,C#与C++
- C C++与C#
- c与c#
- C#与C
- C# 与 C 、 C++ 、 D 、 Java 的性能比较(一)
- 【C#】c#之我见
- C/S模式在线升级之C#一种实现(一)
- 【C语言】数组--数组与指针的小区别
- easyui datagrid 日间格化(JS 日期时间本地化显示)
- 方兴东:毛泽东战略思想适用网络安全
- C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
- python 从SocketServer到 WSGIServer 源码分析、
- mySQL查询优化
- C#与C/C++之别一
- 在SQL中用正则表达式替换html标签
- 开源代码分享
- 区分NSNumber和NSInteger
- 理解 Android Build 系统
- ORACLE并发处理技术
- git 常用命令
- 一颗开花的树
- 小黑小波比.在个人信息显示头像