C# 学习笔记-- C# 的基础语法

Posted khose

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 学习笔记-- C# 的基础语法相关的知识,希望对你有一定的参考价值。

C# 是由 C 语言和 C++ 演变而来,属于 C 语言系,并兼容了 许多 Java 的特性,C/C++,Java 程序员可以很容易理解 C# 的内容。

标识符和关键字

标识符是程序员一块内存起的一个名字(这块内存可以是一个变量,一个类或一个方法)。在 C# 中,标识符必须是一个完整的词汇(即标识符中不能包含空格),由 Unicode 字符组成( C 语言只能包含英文字母,数字和下划线),并且以字母或下划线开头。

关键字对于编译器而言有着特殊的含义,它通常用于指定编译器的系统行为。关键字都被保留,这意味着你不能在标识符中使用它们。

不过,有的人天生就喜欢打破常规,他就要用关键字作为标识符,可以,微软也为这类人提供了方法,那就是在关键字前加上一个 @ 。这样他就可以被用作标识符了,比如:

int @int = 0;

这样你就定义了一个名字叫做 intint 类型(整型)的变量。

需要注意的是,加了 @ 的标识符和未加 @ 的标识符含义完全相同。

字面值,标点符号和运算符

字面值是嵌入到程序中的原始的数值。

标点符号帮助划分程序的结构。

操作符转换以及连接所有的表达式。

注释

C# 支持单行和多行注释。分别用符号 ///**/ 表示,这一点与 C 语言完全一样。

类型

类型是一组变量在内存中的数据组织模型。

预定义类型是由编译器定义的一些特殊类型。同 C 语言一样, C# 中包含许多的预定义类型。这些类型名称都是关键字。

同时, C# 也允许我们自己定义复杂的类型,即 C# 也支持自定义类型。

类型转换

类型转换有隐式转换和显式转换,隐式转换自动发生,而显式转换则需要一个指明。

隐式转换可以在下面两个条件成立时执行:

  • 编译器可以保证转换成功。
  • 不会有精度损失。

同样的,显式转换在下面两个条件成立时需要被指明:

  • 编译器不能保证转换成功。
  • 有精度损失。

与 C 语言一样 C# 的显示类型转换在变量前使用 () 符号表明转换的目标的类型。

如果编译器能够确定一个转换总会失败,那么显式和隐式转换都是被禁止的。

值类型和引用类型

C# 支持下列四种类型:

  • 值类型
  • 引用类型
  • 范型
  • 指针类型

值类型

值类型的内容就是一个值。它在实例赋值时会拷贝这个值。因此,值类型的赋值就是将一个值类型的值拷贝给另一个值类型,其本质是使用了两块内存,但是两块内存中的值相同。

值类型不能为空(如果没有指定值类型的值,其值将会是一个随机数值),而值类型所占空间的大小就是其类型的大小。

在 C# 中,值类型包括大部分的预定义类型, struct 类型以及 enum 类型。

引用类型

引用类型包括两部分,对象和指向对象的引用。其中对象需要是一块真实的内存,这块内存中存储的值是引用类型所引用的值,具有实际意义。对象的引用表示对象的地址(类似于 C 语言中的指针)。

引用类型的赋值只会拷贝引用,而不会拷贝这个值。这意味着可以有多个引用同时指向同一个值。

一个引用可以为空,这意味着它指向任何一个对象。引用类型需要为引用和字段分配单独的空间。对象占用的空间大小等于他的字段,但还要加上额外的管理开销。

所有的类,数组,委托和接口以及预定义的 string 类型都是引用类型。

以上是关于C# 学习笔记-- C# 的基础语法的主要内容,如果未能解决你的问题,请参考以下文章

C# 学习笔记(18)操作SQL Server 中

C#基础及CLR基础学习笔记

C#学习笔记1.基本语法结构

C#学习笔记(基础知识回顾)之枚举

(原创)C#零基础学习笔记009-异常处理

C#学习笔记---基础入门