C#学习笔记一

动态语言eg(JavaScript 、Python、Ruby)来编程越来越流行,Microsoft 在C#中发布了一个新的动态类型功能,并不总是可以静态方式通知对象最终是什么类型,不使用object关键字和从这个类型生成的所有对象,而可以让动态语言运行库(Dynamic Language Runtime,DLR)在运行期间动态地确定对象的类型。
C#使用dynamic关键字访问新的DLR,只要遇到这个关键字,编译器就认为它是一个动态调用。

从语法上看,C#非常类似C++和java,许多关键字都相同,也使用类似C++和java的块结构,并用花括号{}来标记代码块。C#本身非常类似于java。但C#有两个局限性:一方面是该语言不适用与编写时间紧迫或性能非常高的代码;eg: 如 一 个要占用 1000或 1050个机器周期的循环 ,并在不需要这些资源时 ,立即清理它们。在这方面 ,C++可 能仍是所有低级语言中的佼佼者。另 一 方面是C#缺乏性能极高的应用程序所需要的关键功能 ,包 括能够指定那些保证在代码的特定地方运行的内联函数和析构函数。但这类应用程序非常少。
C#不能孤立的运用,必须和.net Framework一起考虑
(1)C#的 结构和方法论反映了 .NET基 础方法论。
(2)在 许多情况下 ,C#的 特定语言功能取决于 .NET的 功能 ,或 依赖于 .NET基类。
1■ 1 C#与 .NET的 关系
C#是 一 种相当新的编程语言 ,C#的重要性体现在以下两个方面 :
1、 它是专门为Microsoft的 .NET Framework 使用而设计的(.Net Framework是一个功能丰富的平台 ,可 开发、部署和执行分布式应用 程序)
·2、它是 一 种基于现代面向对象设计方法的语言 ,在 设计它时 ,Micorsoft还吸取了其他所有类似语言的经验 ,这 些语言是近⒛ 年来面向对象规则得到广泛应用后才开发出来的。
有 一 个很重要的问题要弄明白 :C#就 其本身而言只是 一 种语言 ,尽 管它是用于生成面向 .NET环境的代码 ,但 它本身不是 .NET的 一 部分。. NET支 持的一些特性 ,C#并 不支持。而 C#语言支持
的另 一 些特性 ,.NET却 不支持(如运算符重载 )!
但是 ,因 为 C#语言和 .NET— 起使用 ,所 以如果要使用 C#高 效地开发应用程序 ,理 解 Framework就非常重要
(1)把 源代码编译为 Microsoft中 间语言 (IL)。
(2)CLR把 IL编译为平台专用的代码

编 译为中间语言就可以获得 .NET平台无关性 ,这 与编译为 Java字 节码就会得到 Java平 台无关性是 一 样的
IL比 Java字 节码的作用还要大。 IL总 是即时编译的 (称为JIT编译 ),而 Java字 节码常常是解释性的。 Java的 一 个缺点是 ,在 运行应用程序时 ,把Java字 节码转换为内部可执行代码的过程会导致性能的损失 (但在最近,Java在某些平台上能进行 JIT编 译 )。
**值类型 (value type) ,变 量直接存储其数据 ,而 对于引用类型
(reference type),变 量仅存储地址 ,对 应的数据可以在该地址中找到**

引 用类型的实例总是存储在 一 个名为
“托管堆 ” 的内存区域中 ,值 类型一 般存储在堆栈中 (但 如果值类型在引用类型中声明为字段 ,它 们就内联存储在堆中)
p43

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值