C# 语言规范--1.1 开始

规范

clothes经典性“hello, world”程序可以写为:

using System;

class Hello

{

   static void Main() {

      Console.WriteLine("hello, world");

   }

}

  C# 程序的源代码通常存储在一个或多个以 .cs 为文件扩展名的文本文件(如 hello.cs)中。可以通过 Visual Studio .NET 所提供的命令行编译器,使用以下命令行指令来编译此程序:

   csc hello.cs

  它产生一个名为 hello.exe 的应用程序。当此应用程序运行时,它产生的输出是:

   hello, world

  仔细观察此程序可以发现:

   “using System;”指令引用一个名为 System 的命名空间,它由 Microsoft .NET Framework 类库定义。此命名空间包含 Main 方法中引用的 Console 类。命名空间提供了一种分层方法来组织一个或多个程序中的各种元素。用“using”指令指定一个命名空间后,该命名空间中的所有成员均可直接被引用。所以,在“hello, world”程序中,可直接使用 Console.WriteLine(而不必使用 System.Console.WriteLine)。

   Main 方法是 Hello 类的成员。它具有 static 修饰符,因此 Main 方法是相对于类 Hello 本身而不是相对于此类的实例。

   应用程序的入口点(即当程序开始运行时首先被调用的方法)总是名为 Main 的静态方法。

   “hello, world”输出依靠类库实现。C# 语言本身不提供类库,它使用公共的类库(Visual Basic .NET 和 Visual C++ .NET 也使用它)。

   对 C 和 C++ 开发人员而言,值得注意的是一些“没有”出现在“hello, world”程序中的东西。

   该程序中的 Main 方法不是全局的。C# 不支持全局级别的方法和变量;这类元素总是包含在类型声明(如类声明和结构声明)中。

   该程序没有使用“::”运算符和“->”运算符。在 C# 中,“::”根本不是运算符,而“->”运算符仅在一小部分程序中使用,即那些涉及不安全代码的程序。分隔符“.”在复合名称中使用,如 Console.WriteLine。

  该程序没有包含前向声明。C# 中声明出现的顺序并不重要,所以不需要作前向声明。

  该程序没有使用 #include 导入程序文本。程序间的依赖项通过符号而不是文本来控制。这样就消除了由多种语言编写的应用程序之间的障碍。例如,Console 类不需要用 C# 编写。

时间: 2024-11-08 22:29:11

C# 语言规范--1.1 开始的相关文章

《Groovy语言规范》-语法

原文链接  译者:王山山 语法 本章节涵盖了Groovy编程语言的语法.Groovy语言的语法源自Java语法,为Groovy增强了特定构造,允许一定程度上的简化语法. 1.注释 1.1.单行注释 单行注释以//开始,在一行中任何位置都可以被发现.//后面的字符,直到一行的末尾都是注释的一部分. // a standalone single line comment println "hello" // a comment till the end of the line 1.2.多行

分清“语言/规范”以及“平台/实现”,以及跨平台.NET开发

在许多年前,"语言"就等同于"平台",例如C,C++以及最早的Ruby和Python等等.但是随着技术发展,出现了一些通用的平台,例如.NET和Java,逐渐这些平台上的语言也越来越多.再后来,某些语言在不同平台上的实现也越来越多,事情也变得有些复杂.技术在发展,但是从目前社区的讨论中,我发现许多朋友的观念还没有跟上.简单地说,如今的观念,一定要从"语言即平台"切换成"语言及平台",当分清"语言"和&quo

《Groovy语言规范》-语法(一)

语法 本章节涵盖了Groovy编程语言的语法.Groovy语言的语法源自Java语法,为Groovy增强了特定构造,允许一定程度上的简化语法. 1.注释 1.1.单行注释 单行注释以//开始,在一行中任何位置都可以被发现.//后面的字符,直到一行的末尾都是注释的一部分. // a standalone single line comment println "hello" // a comment till the end of the line 1.2.多行注释 一个多行注释以/*开

JAVA语言规范-线程和锁章节之同步、等待和通知

原文链接  本文是Oracle官方<Java语言规范>的译文 JAVA语言规范:线程和锁 1 同步 JAVA编程语言提供了线程间通信的多种机制.这些方法中最基本的是同步化,此方法是使用监视器实现的.JAVA中每个对象与一个监视器相关联,一个线程可以加锁和解锁监视器.一次仅有一个线程可能在监视器上持有锁.尝试锁住该监视器的任何其他线程被阻塞,直到它们可以再该监视器上获得一个锁.线程t可以多次锁住特别的监视器:每个解锁将一个加锁操作的作用反转来了. synchronized语句计算了一个对象的引用

JAVA语言规范:线程和锁

JAVA语言规范:线程和锁 概述: 前面章节的大多数讨论,都是关于通过单线程一次执行单个语句或者表达式.而JAVA虚拟机可以支持多线程同时执行.这些线程可以独立执行代码操作,而操作后所产生的值会保留在共享内存当中.单处理器和多处理器都能支持多线程,它们都是通过分配CPU时间片来执行代码. 线程由Thread类表示.用户创建线程的唯一方式是创建此类的一个对象:每个线程和这样的一个对象相关.当在相应的Thread对象上调用start()方法是,一个线程将启动. 线程的行为,特别是当不正确同步时,容易

Facebook 推出 PHP 语言规范草案

PHP是最广泛使用的脚本语言之一,被数以千万计的网站使用,但直到现在它才有一个正式的语言规范.Facebook工程师和PHP核心开发者 Sara Golemon在上月初举行的OSCON会议上宣布了制定正式规格的计划,现在规格的草案已经发布在Github上. Facebook网站主要是基于PHP语言,过去几年Facebook向PHP贡献了许多开源项目,如虚拟机HHVM,翻译器HPHPc. 传送门(GitHub):https://github.com/php/php-langspec/blob/ma

一起谈.NET技术,分清“语言/规范”以及“平台/实现”,以及跨平台.NET开发

在许多年前,"语言"就等同于"平台",例如C,C++以及最早的Ruby和Python等等.但是随着技术发展,出现了一些通用的平台,例如.NET和Java,逐渐这些平台上的语言也越来越多.再后来,某些语言在不同平台上的实现也越来越多,事情也变得有些复杂.技术在发展,但是从目前社区的讨论中,我发现许多朋友的观念还没有跟上.简单地说,如今的观念,一定要从"语言即平台"切换成"语言及平台",当分清"语言"和&quo

C# 语言规范--1.10 委托

规范 委托适用于那种在某些其他语言中需用函数指针来解决的情况(场合).但是,与函数指针不同,委托是面向对象和类型安全的. 委托声明定义一个类,它是从 System.Delegate 类派生的类.委托实例封装了一个调用列表,该列表列出了一个或多个方法,每个方法称为一个可调用实体.对于实例方法,可调用实体由一个实例和该实例的方法组成.对于静态方法,可调用实体仅由一个方法组成.如果用一组合适的参数来调用一个委托实例,则该委托实例所封装的每个可调用实体都会被调用,并且用的都是上述的同一组参数. 委托实例

C# 语言规范--1.11 枚举

规范 枚举类型声明为一组相关的符号常数定义了一个类型名称.枚举用于"多项选择"场合,就是程序运行时从编译时已经设定的固定数目的"选择"中做出决定. 示例 enum Color{   Red,   Blue,   Green}class Shape{   public void Fill(Color color) {      switch(color) {         case Color.Red:            ...            break