C#程序设计语言 第一章 介绍 (1)
Hejlsberg,A. 著
机械工业出版社
2011年
序言
发展历史 2000年 .NET发布
结合了托管代码的本地执行
用于程序间通信的XML消息机制
一个值类型,一个引用类型,的区别是什么?
结构和类的区别?
一个是从 System.ValueType 继承的类型, 另一个 不是从 System.ValueType 继承的类型
C# 迭代性,真正的闭包,C#编译器实现的纯语言特性,而不是平台自带特性
C#2.0 泛型、匿名委托
C#3.0 标准化的查询操作符,lambda表达式,扩展方法,运行时访问表示式树的能力,LINO特性
C#4.0 动态值
介绍
see sharp
ECMA International
ECMA-334
ISO/IEC
ISO/IEC 23270
同时遵循了这两个标准
组件提供了 属性、方法、事件 的编程模型;
C# 垃圾收集,异常和粗粒,结构化且可扩展的方式来检测错误和回复,类型安全,防止读取未初始化的变量,数组越界,类型转换检查,
统一的类型系统 unified type system
int double 都是 从 根类型 object 继承而来, 有一些通用操作,一致的方式进行保存、传递、操作
C# 支持用户自定义引用类型,值类型,
C# 类库,重视版本兼容性,
virtual 和 override 修饰符,
方法重载 的规则
接口成员显示声明的支持
函数式编程语言,类型推导、lambda表达式、一元查询推导式 面向对象程序员可以利用函数式编程的思想来增加语言的表达能力。
hello.cs
<pre>
using System;
class Hello{
static void Main(){
Console.WriteLine("Hello, World");
}
}
</pre>
csc hello.cs
Hello类 只有一个成员方法 Main
static 修饰符
实例方法,可以通过 关键字 this 来 引用自身
静态方法在使用时,无需引用某个 特定对象,
静态方法 main 是程序的入口点,
using 指令;System 命名空间;
命名空间;提供层次化的方式,来组织C#程序和类库,命名空间;可以包含 类型 和 其他命名空间
例如,System 命名空间;包括Console类 和 IO 命名空间 Collection命名空间
通过using指令引用某个命名空间时,你就可以不加前缀使用这个命名空间里的类型,
即 System.Console.WriteLine 可简写为 Console.WriteLine
程序输出是由,命名空间System 里的Console类 的WriteLine 方法产生的,
默认情况下,C#编译器会自动引用这个由.NET框架类库提供的类
.NET 框架就是C#的运行库,