C#基本教程第一课

时间:2022-01-23 23:03:22

  C#是一门基于.NET的高级语言,正是因为C#处于.NET温暖的怀抱,所以许多C#程序员,甚至许多C#高级程序员对.NET在内存和指令等本质问题上认识不够。况且有许多使用C#的程序员在使用ASP.NET技术进行网站开发,他们有的从脚本语言转型而来,有的在没有充分学习C#的情况下就投入了开发工作,那么他们可能对本质问题的认识就更差一点。但是笔者认为,不管怎么样,都非常有必要更深入理解语言背后的机制,而不仅仅停留在掌握API使用的层次上。只有这样,你才能意识到很多BUG的关键点和性能问题的关键点,并且理解那些高级的特性。

  本课程的目的是讲授C#编程语言的基础知识和工作原理。

 ___________________________________________________________________________________________________________________________________

1.1 一个简单的C#程序

using System;

namespace oneapp
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("hello!");
}
}
}

 

1行:告诉编译器这个程序使用System命名空间的类型

3行:声明一个新命名空间,名称为oneapp

5行:声明一个新的类类型,名称为Program

7行:声明一个名称为Main的方法作为类Program的成员

9行:只包含一条单独的、简单的语句,这一行组成了Main的方法体

 

2.2 标识符和关键字

标识符识一种字符串,用来命名如变量、方法、参数和许多后面讲要阐述的其他程序结构之类的东西。

  • 字母和下划线(a-z、A-Z)可以用在任何位置。
  • 数字不能放在首位,但可以放在其他的任何地方。
  • @字符可以放在标识符的首位,但不能放在其他任何地方。虽然允许使用@字符,但不推荐作为常用字符。
//语法上有效,但是不应该这样做
int totalCycleCount
int TotalCycleCount
int TotalcycleCount

2.2.1命名约定

对于大多数标识符,应该使用Pascal大小写风格。在这种风格中,连接成标识符的每个单词都首字母大写。例如FirstName和LastName。

推荐的标识符命名风格

命名风格 描述 使用建议 示例
Pascal大小写 标识符中每个单词都首字母大写 用于类型名和成员名 CarDeck,DealersHand
Camel大小写 除第一个单词以外,标识符中所有单词都首字母大写 用于本地变量和方法参数 totalCycleCount,random-SeedParam
全大写 标识符由全大写字母组成 仅用于缩写词 IO,DMA,XML

虽然这是建议的指导方针,但很多组织使用其他的约定,尤其是在成员字段的命名方面,这些内容将在第二章介绍。

有两个公共约定如下所示:

  • 字段名称以下划线开头:_highTemp、_LowTemp。
  • 字段名以m_开头:m_highTemp、m_LowTemp。

 这两种方法都有优势,能立刻显示这些标识符是字段名称。

2.2.2关键字

关键字是用来定义C#语言的字符串记号。

关于关键字,一些应该知道的重要内容如下:

  • 关键字不能被用作变量名或任何其他形式的标识符,除非以@字符开始。
  • 所有C#关键字全部由小写字母组成,但是.NET类型名使用Pascal大小写约定。

C#关键字

abstract const extern int out short typeof
as continue false interface override sizeof uint
base decimal finally internal params stackalloc ulong
bool default fixed is private static unchecked
break delegate float lock protected string unsafe
Byte do for long public struct ushort
case double foreach namespack readonly switch using
catch else goto new ref this virtual
char enum if null return throw void
checked event implicit object sbyte true volatile
class explicit in operator sealed try while

上下文关键字是仅在特定的语言结构中充当关键字的标识符。在那些位置,他们有特别的含义。但和关键字不同,关键字不能被用作标识符,而上下文关键字可以在其他部分代码中被用作标识符。

c#上下文关键字

add ascending by descending dynamic equals from
get global group into join let on
orderby partial remove select set value var
where yield