C# 学习笔记-- C# 的基础语法
Posted khose
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 学习笔记-- C# 的基础语法相关的知识,希望对你有一定的参考价值。
C# 是由 C 语言和 C++ 演变而来,属于 C 语言系,并兼容了 许多 Java 的特性,C/C++,Java 程序员可以很容易理解 C# 的内容。
标识符和关键字
标识符是程序员一块内存起的一个名字(这块内存可以是一个变量,一个类或一个方法)。在 C# 中,标识符必须是一个完整的词汇(即标识符中不能包含空格),由 Unicode 字符组成( C 语言只能包含英文字母,数字和下划线),并且以字母或下划线开头。
关键字对于编译器而言有着特殊的含义,它通常用于指定编译器的系统行为。关键字都被保留,这意味着你不能在标识符中使用它们。
不过,有的人天生就喜欢打破常规,他就要用关键字作为标识符,可以,微软也为这类人提供了方法,那就是在关键字前加上一个 @
。这样他就可以被用作标识符了,比如:
int @int = 0;
这样你就定义了一个名字叫做 int
的 int
类型(整型)的变量。
需要注意的是,加了@
的标识符和未加@
的标识符含义完全相同。
字面值,标点符号和运算符
字面值是嵌入到程序中的原始的数值。
标点符号帮助划分程序的结构。
操作符转换以及连接所有的表达式。
注释
C# 支持单行和多行注释。分别用符号 //
和 /**/
表示,这一点与 C 语言完全一样。
类型
类型是一组变量在内存中的数据组织模型。
预定义类型是由编译器定义的一些特殊类型。同 C 语言一样, C# 中包含许多的预定义类型。这些类型名称都是关键字。
同时, C# 也允许我们自己定义复杂的类型,即 C# 也支持自定义类型。
类型转换
类型转换有隐式转换和显式转换,隐式转换自动发生,而显式转换则需要一个指明。
隐式转换可以在下面两个条件成立时执行:
- 编译器可以保证转换成功。
- 不会有精度损失。
同样的,显式转换在下面两个条件成立时需要被指明:
- 编译器不能保证转换成功。
- 有精度损失。
与 C 语言一样 C# 的显示类型转换在变量前使用 ()
符号表明转换的目标的类型。
如果编译器能够确定一个转换总会失败,那么显式和隐式转换都是被禁止的。
值类型和引用类型
C# 支持下列四种类型:
- 值类型
- 引用类型
- 范型
- 指针类型
值类型
值类型的内容就是一个值。它在实例赋值时会拷贝这个值。因此,值类型的赋值就是将一个值类型的值拷贝给另一个值类型,其本质是使用了两块内存,但是两块内存中的值相同。
值类型不能为空(如果没有指定值类型的值,其值将会是一个随机数值),而值类型所占空间的大小就是其类型的大小。
在 C# 中,值类型包括大部分的预定义类型, struct
类型以及 enum
类型。
引用类型
引用类型包括两部分,对象和指向对象的引用。其中对象需要是一块真实的内存,这块内存中存储的值是引用类型所引用的值,具有实际意义。对象的引用表示对象的地址(类似于 C 语言中的指针)。
引用类型的赋值只会拷贝引用,而不会拷贝这个值。这意味着可以有多个引用同时指向同一个值。
一个引用可以为空,这意味着它指向任何一个对象。引用类型需要为引用和字段分配单独的空间。对象占用的空间大小等于他的字段,但还要加上额外的管理开销。
所有的类,数组,委托和接口以及预定义的 string
类型都是引用类型。
以上是关于C# 学习笔记-- C# 的基础语法的主要内容,如果未能解决你的问题,请参考以下文章