the overview of ucma c# language spesication
8. language overview (语言概观)
这个条款是扩展的资料。
c# (读音为“c sharp”)是一种简朴、富有朝气的、面向对象和类型安全的编程语言,可以很快地被
c/c++程序员所接受。c#的目标是结合快速开发(rad)语言的高效和c++强大功能。
以下的几节会描述这门语言的基本特点。在后面的章节中将详细地,甚至是精确地介绍该语言的规则及其
他。本章将力求清晰简短的含盖所有的内容。使得读者有个初步地印象和更容易地阅读余下的章节。
8.1 开始
用 c# 编写的规范的“hello, world” 如下:
using system;
class hello
{
static void main() {
console.writeline("hello, world");
}
}
c# 的源代码可以存放在用 .cs 作为扩展名的一个或多个文本文件中,比如本例的“hello.cs”。在命令行中
可以这样编译:
csc hello.cs
这个操作会产生一个hello.exe。输出的结果是:
hello, world
让我们从语法开始分析:
·using system;
直接引用由 common language infrastructure (cli) 提供的 system namespace。这个namespace包含在 main
方法中所要用到的 console 类。名字空间(namespace)提供了一种分层组织类库成员的方法。“using”解开
限制而可以使用 system 这个名字空间里的成员。程序中 console.writeline 是 system.console.writeline
缩写。system 是名字空间,console 是 system 里定义的一个类,writeline是这个类的一个 static 方法。
·main 函数是 hello 类的一个成员。因为它有一个 static 的修饰符,所以它不存在于 hello 的实体中,而
仅仅是在这个类的范围内。
·程序的进入点,即程序开始执行的地方,总是一个名字为 main 静态的方法。
·“hello, world”使用了一个类库。但标准并没有对类库进行定义。实际上,程序引用由cli提供的类库。
很有趣的是c/c++开发者会觉得有不少东西没有出现在“hello, world”程序中。
·程序中没有一个main的全局方法。所有的方法和变量都不会出现在全局的范围内;而是永远包含在数据类型
的声明内(如类和结构的声明中)。
·程序中没有“::” 或“->”操作符。“::”不是 c# 的操作符,而“->”只用在一些特殊的场合(不安全代
码中)。c# 程序用“.”分割名字域,如 console.writeline。
·在 c# 中无需先声明后使用,声明的次序已没有意义了。
·c# 不使用 #include 引入源代码,不再是文字上地而是抽象地引用。比如,console 类可以不用是 c# 编写的。