C#程序的基本组成
命名空间:C#程序是利用命名空间组织起来的,命名空间既可做程序内部组织系统,也用做外部公开的组织系统,即一种向其它程序公开自己拥有程序元素的方法。如果要调用某个命名空间中的类或者方法,首先要使用using指令将命名空间所标识的命名空间内的类型成员导入当前编译单元中,从而可以直接使用每个被导入的类型的标认符,而不必加上它们的完全限定名。Using指令的格式:using 命名空间名;
类:类是一种数据结构,它可以封装数据成员,方法成员和其它的类。类是创建对象的模板,C#中所有的语句都必须包含在类内,因此,类是C#语言的核心和基本构成模块。C#支持自定义类,使用C#编程,实质上就是编写自己的类来描述实际需要解决的问题。
使用任保新的类之前都必须声明它,一个类一旦被声明,就可以当作一个新的类来使用,在C#中通过使用class 关键字来声明类,声明形式:
[类修钸符] class [类名] [基类或接口]
类名是一种标识符,必须符合标识符的命名规则。类名要能体现类的含义和用途而且采用第一个字母大写的名词,当然也可以采用多个词构成的组合词。
Main方法
Main方法是程序的入口点,程序将在此创建对象和调用方法,一个C#程序中只能有一个入口点,每新建一个项目,程序就会自动生成一个main方法,默认的main方法如下:
可以用3个修钸符修饰main方法,分别是public static void
public:说明main方法是公有的,在类的外面也可以调用整个方法。
static:说明main方法是一个静态方法,即这个方法属于类的本身而不是这个类的特定对象。调用静态方法不能使用类的实例化对象,必须直接使用类名来调用。
void:说明main方法无返回值。
使用main方法时必须注意以下:main方法是程序的入口点,程序控制在该方法中结束和开始。访方法在在类或结构的内部声明,它必须为静态方法,而且不能为公共方法。可以具有int或void返回类型。声明时既可以使用参数,也可以不使用参数。参数可以作为从零开始索引的命令行参数来读取。
标识符
标认符是指在程序中用来表示事物的单词,其命名规则有以下3条:
标识符只能由数字、字母和下划线组成
标识符只能是字母或者下划线开头。
标识符不能是关键字
关键字:是指在C# 具有特殊意义的单词不可随便使用。
数据类型
C#中和数据类型主要分为值类型和引用类型两种,这两种类型的差异在于数据的存储方式,值类型直接存储数据而引用类型则存储的的数据的引用,程序通过引用找到真正的数据。
值类型:值类型直接存储数值,值类型在栈中进行分配,因此效率很高,使用值类型主要是为了提高性能,具有如下特性。
1)值类型号变量都存放在栈中;
2)访问值类型变量时,一般都是直接访问其实例。
3)每个值类型变量都有自己的数据副本,因此对一个值类型变量的操作不会影响其它变量。
4)复制值类型变量时复制的是变量的值,而不是变量的地址。
值类型的变量不能变null,必须具有一个确定的值。
1、 整数类型:代表一类没有小数点的值。
2、 浮点类型:主要用于处理含有小数点的的数值数据,它主要包含float和double两种类型。如果不做任何设置包含小数点的数值默认为double类型。如果要将数值强制指定为double型,则需要使用d或D程序中使用float类型时,必须在数值的后面跟随f或F,否则编译器会默认为double类型。
double m=927d
3、 布尔类型:布尔类型号主要用于表示true/false值,一个布尔类型的变量,其值只能是true或false,不能将其他的值指定给布尔类型变量,布尔类型的变理也不能与其它类型进行转换。
引用类型
引用类型引用类型是构建C#应用程序的主要对象类型数据,引用类型的变量又称为对象,可存储对实际数据的引用。C#支持两个预定义的引用类型object和string
类型 | 说明 |
object | Object类型在.NET 中是object的别名。在C#的统一类型系统中,所有的类型(预定义类型、用户定义类型、引用类型和值类型)都是直接或间接从object继承的 |
string | String类型表示零或者更多unicode字符组成的序列但如果用到了相等运算符,则表示比较string 对象(而不是引用) |
在应用程序执行的过程中,引用类型使用new关键字创建对象实例,并存储在堆中。堆是种由系统弹性配置的内存存空间,没有特定的大小及存活时间,因此可以被弹性地运用于对象的方问。
引用类型具有如下特征:
必须在托管堆中为引用类型变量分配内存
必须使用new关键字来创建引用类型变量
在托管堆中分配的每个对象都有与之相关的附加成员,这些成同必须被初始化。
引用类型变量是由垃圾回收机制来管理的
多个引用类型变量可以引用同一对象,这种情形下,对一个变量的操作会影响另一个变量所引用的同一对象
引用类型被赋值前的值都是null
所有被称为“类”的都是引用类型,主要包括类、数组、接口和委托。
类型转换
隐式转换:不需要进行声明就可以完成转,任何类型A,只需要其取值范围完全包含在数据B的取值范围内,就可以隐式转换为类型B。
显式转换:即强制性转换,它需要在代码中明确地声明要转换的类型,由于显式类型转换包括所有显式转换和隐式转换,所以总是可以用强制转换表达式从任何数值类型转换为任保类型。
装箱操作:实质上就是将值类型转换为引用类型的过程,对值类型的值进行装箱,其实就是分配一个对象实例,并将值类型的值复制到该对象实例中。
拆箱操作:拆箱实质上就是将引用类型转换为值类型的过程,拆箱的执行过程大致可以分为以下两个阶段:
检查对象的实例,看它是不是值类型的装箱值
把这个实例的值复制给值类型的变量
在执行拆箱操作时,要符合类型一致的原则,否则会出现异常。比如,将一个字符进行了装箱操作,那么对其进行拆箱操作时一定要将其拆箱为字符串。
常量:常量又叫常数,它主要用来存储在程序运行过程中值不改变的数据。常量也有数据类型.在C#中用const来对常量进行声明,并且在声明时必须对其进行初始化。常量不可以用static关键字来进行声明,但可以像访问静态字段一样来访问常量。未包含在定义常量的类中的表达式必须使用类名+一个句点+常量名来问常量。
变量:是指在程序运行过程中其值可以不断变化的量。变量通常用来保存程序运行过程中的输入数据、计算获得的中间结果和最终结果。声明变量时需要要指定变量的名称和类型,格式:变量类型后跟一个或若干个变量名,也可以在声明时初始化。