C#中有很多与C++和Java一样的语法规范:
- C#和C++一样以分号(;)作为语句结尾
- 语句可以卸载多个代码行上且不需要使用续行字符
- 使用花括号({})可以把语句组合为块
- 单行注释以两个斜杠字符开头(//)
- 多行注释以一个斜杠和一个星号(/*)开头,以一个星号和一个斜杠(*/)结尾
- 区分大小写,即myVar与MyVar是两个不同的变量
作为一名程序猿,新接触一门语言,当然是先写出 “Hello, World!” 啦,然后用 Visual Studio 2015 新建一个 C# 的命令行工程,其基本代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static System.Console;
namespace HelloWorldApp
{
class Program
{
static void Main(string[] args)
{
WriteLine("Hello, World!");
}
}
}
这是没有注释也没有多余的代码的内容,前五行是新建命令行工程的时候自动生成的。添加了相关注释后的程序如下:
/*
* 在引用的头语句中,System为名称空间,System.Linq为类名,System.ConSole.WriteLine为方法名(函数名)
* 标准的System名称空间包含了最常用的.NET类型,在C#中做的所有工作都依赖于.NET基类
* (.NET为基类!不是编程语言,也不是编程框架,更不是编译器!而在C#中的所有工作都依赖于.NET基类)
* 所有的C#代码必须包含在类中!类包含class关键字、类名以及一个花括号({}),与类相关的所有代码都应该在这个花括号中
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static System.Console; // 标识:1
// using static System; // 标识:2
// (空) // 标识:3
// 不同的标识下与之相对应的库的调用
// 这里禁止写程序代码
namespace HelloWorldApp //命名空间
{
// 命名空间内也禁止写程序代码
//int j = 200; //出现报错:CS0116:命名空间不能直接包含字段或方法之类的成员
class Program // 类
{
// 这里才可以写程序代码,包括变量、函数以及其他各种程序运算
int i = 100;
static void Main(string[] args) //方法(函数)
{
WriteLine("Hello, World!"); // 标识:1
// Console.WriteLine("Hello, World!"); // 标识:2
// System.ConSole.WriteLine("Hello, World!"); // 标识:3
}
}
}
代码的相关解析和注释都在上述代码中注释了,可以看到代码的整体风格与C/C++和Java类似。引用库在C/C++中以引用文件的方式进行:“include <stdio.h>”,而在这里更类似于python中的引用方式:“import ros;”而在C#的引用库更像C++中声明类似:“using System;”,而C++中声明一个命名空间成员则是:“using std::cout”。
或许C#也有一些引用文件的方式,但目前还没有学习到,当刚开始的入门学习便注意到了这是与C++不太相同的地方。除此之外每个C#代码还需要命名空间和类的定义,这在一定程度上使C#的代码更整体化,有利于整体化的思维来编写代码。