color = \ //声明始化,车的颜色为红色
上述代码也可以合并为一个步骤简化编程开发,示例代码如下所示。 int age=1;
//声明并初始化一个叫age的整型变量,代表年龄
//声明初始化
string color=\
4、 数组
数组是一个引用类型,开发人员能够声明数组并初始化数据进行相应的数组操作,数组是一种常用的数据存放方式。
1.数组的声明
数组的声明方法是在数据类型和变量名之间插入一组方括号,声明格式如下所示。 string[] groups;
//声明数组
以上语句声明了一个变量名为groups的数组,其数据类型为string。声明了一个数组之后,并没有为此数组添加内容初始化,需要对数组初始化,才能使用数组。
2.数组的初始化
开发人员可以对数组进行显式的初始化,以便能够填充数组中的数据,初始化代码如下所示。 string[] groups={\
//初始化数组
值得注意的是,与平常的逻辑不同的是,数组的开始并不是1,而是0。以上初始化了groups数组,所以groups[0]的值应该是“asp.net”而不是“c#”,相比之下,group[1]的值才应该是“c#”。
3..NET中数组的常用的属性和方法
在.NET中,.NET框架为开发人员提供了方便的方法来对数组进行运算,专注于逻辑处理的开发人员不需要手动实现对数组的操作。这些常用的方法如下所示。
? Length方法用来获取数组中元素的个数。
? Reverse方法用来反转数组中的元素,可以针对整个数组,或数组的一部分进行操作。 ? Clone方法用来复制一个数组。
对于数组的操作,可以使用相应的方法进行数据的遍历、查询和反转,示例代码看项目指导。
5、 声明并初始化字符串
字符串是计算机应用程序开发中常用的变量,在文本输出、字符串索引、字符串排序中都需要使用字符串。
1.声明及初始化字符串
字符串类型(string)是程序开发中最常见的数据类型,如上一小节声明的数组中的任意一个元素都是一个字符串。由于数组也是有其数据类型的,所以声明的数组是一个字符串型的数组。字符串的声明方式和其他的数据类型声明方式相同,字符串变量的值必须在“”双引号之间,示例代码如下所示。
string str=\ //声明字符串
6、 操作字符串
在C#中,为字符串提供了快捷和方便的操作,使用C#提供的类能够进行字符串的比较、字符串的连接、字符串的拆分等操作,方便了开发人员进行字符串的操作。
1.比较字符串
如果需要比较字符串,有两种方式,一种是值比较,一种是引用比较。值比较可以直接使用运算符“==”进行比较,示例代码如下所示。
string str = \ string str2 = \ if (str == str2) {
Console.WriteLine(\字符串相等\ } else {
Console.WriteLine(\字符串不相等\ } 2.连接字符串
当一个字符串被创建,对字符串的操作的方法实际上是对字符串对象的操作。其返回的也是新的字符串对象,与int等数据类型一样,字符串也可以使用符号“+”进行连接,代码如下所示。
string str = \ string str2 = \ Console.WriteLine(str+str2);
//声明字符串 //声明字符串 //连接字符串
//输出相等信息
//输出不相等信息
//声明字符串 //声明字符串
//使用“==”比较字符串
在上述例子中,声明并初始化两个字符串型变量str和str2,并输出str+str2的结果 3.拆分字符串 4.更改字符串大小写 5.常用的字符串操作
在C#软件开发过程,字符串是使用率最高的数据类型之一,开发人员往往需要对字符串进行大量的操作。这里介绍一些经常使用的字符串操作如判断字符串是否为空,替换字符串中相应的字符等等。判断字符串是否为空会经常在程序中使用,以保证用户输入的完整性,示例代码如下所示。
string str = \//声明字符串 if (String.IsNullOrEmpty(str)) {
Console.WriteLine(\字符串为空\ }
//输出字符串为空的信息
//使用String类的静态方法
else {
Console.WriteLine(\字符串不为空\ }
大多数应用程序都是对字符串进行操作,这里简单的常用的字符串的操作,熟练掌握字符串的操作对应用程序开发有很大的好处。
//输出字符串不为空的信息
7、 创建和使用常量
常量是一般在程序开发当中不经常更改的变量,如π值、税率或者是数组的长度等。使用常量一般能够让代码更具可读性、更加健壮、便于维护。在程序开发当中,好的常量使用技巧对程序开发和维护都有好的影响,示例代码如下所示。
const double pi=3.1415926; {
double r=2;
//声明double类型常量
//使用常量 //输出变量值 //等待用户输入
double round = 2 * pi * r * r; Console.ReadKey(); }
上述代码非常简单,就是计算一个圆的圆周率。当代码非常长的时候,程序也会非常干练,容易阅读,如果在程序中出现了以下代码,也能够理解该表达式的作用。示例代码如以下所示。
double Perimeter = 2 * pi * r;
//使用常量
//常量pi,π //程序入口方法
static void Main(string[] args)
Console.WriteLine(round.ToString());
使用const声明的变量能够在程序中使用,但是值得注意的是,使用const声明的变量不能够在后面的代码中对该变量进行重新赋值。
注意:使用const声明的变量如果在后面的代码中进行重新赋值或更改,则编译器会提示错误。const修饰符通常用于不常更改的变量的修饰。
8、 类型转换
在应用程序开发当中,很多的情况都需要对数据类型进行转换,以保证程序的正常运行。类型转换是数据类型和数据类型之间的转换,在.NET中,存在着大量的类型转换,常见的类型转换代码如下所示。
int i = 1;
//声明整型变量 //隐式转换输出
Console.WriteLine(i);
在上述代码中i是整型变量而WriteLine方法的参数是Object类型,但是WriteLine方法依旧能够正确输出是因为系统将i的类型在输出的时候转换成了字符型。在.NET框架中,有隐式转换和显式转换,隐式转换是一种由CLR自动执行的类型转换,如上述代码中的,就是一种隐式的转换(开发人员不明确指定的转换),该转换由CLR自动的将int类型转换成了string型。在.NET中,CLR支持许多数据类型的隐式转换,CLR支持的类型转换列表如表2-5所示。
表2-5 CLR支持的转换列表
从该类型 short int long,ulong float char 到该类型 int,long,float,double,decimal long,float,double,decimal float,double,decimal double ushort,int,uint,long,ulong,float,double,decimal
显式转换是一种明确要求编译器执行的类型转换。在程序开发过程中,虽然很多地方能够使用隐式转换,但是隐式转换有可能存在风险,显式转换能够通过程序捕捉进行错误提示。虽然隐式也会提示错误,但是显式转换能够让开发人员更加清楚的了解代码中存在的风险并自定义错误提示以保证任何风险都能够及早避免,示例代码如下所示。
int i = 1;
//声明整型变量i //显式转换为浮点型
float j = (float)i;
注意:显式的转换可能导致数据的部分丢失,如3.1415转换为整型的时候会变成3。
除了隐式的转换和显式的转换,还可以使用.NET中的Convert类来实现转换,即使是两种没有联系的类型也可以实现转换。Convert类的成员函数都是静态方法,当调用Convert类的方法时无需创建Convert对象,当使用显式的转换的时候,若代码如下所示,则编译器会报错。
string i = \ int j = (int)i;
//声明字符串变量 //显式转换为整型 //隐式转换为字符串
Console.WriteLine(j); 量的值都能随意转换,示例代码如下所示。
string i = \
但是明显的是,字符串变量i的值是有可能转换成整型变量值1的。但是值得注意的是,并不是每个变
//声明字符串变量 //错误的转换
int j = Convert.ToInt32(i);
上述代码中,i的值是字符串“haha”,很明显,该字符串是无法转换为整型变量的。运行此代码后系统会抛出异常提示字符串“haha”不能够转换成整型常量。
9、 编写表达式
在了解了C#中的数据类型、变量的声明和初始化方式、以及类型转换等基本知识,就需要了解如何进行表达式的编写。表达式在C#应用程序开发中非常的重要,本节将说明如何使用运算符创建和使用表达式。 9.1 表达式和运算符
表达式和运算符是应用程序开发中最基本也是最重要的一个部分,表达式和运算符组成一个基本语句,语句和语句之间组成函数或变量,这些函数或变量通过某种组合形成类。
1.定义
表达式是运算符和操作符的序列。运算符是个简明的符号,包括实际中的加减乘除,它告诉编译器在语句中实际发生的操作,而操作数既操作执行的对象。运算符和操作数组成完整的表达式。
2.运算符类型
在大部分情况下,对运算符类型的分类都是根据运算符所使用的操作数的个数来分类的,一般可以分为三类,这三类分别如下所示。
? 一元运算符:只使用一个操作数,如(!),自增运算符(++)等等,如i++。 ? 二元运算符:使用两个操作数,如最常用的加减法,i+j。 ? 三元运算符:三元运算符只有(?:)一个。
除了按操作数个数来分以外,运算符还可以按照操作数执行的操作类型来分,如下所示。 ? 关系运算符。 ? 算术运算符。 ? 赋值运算符。 ? 条件运算符。 ? 其他运算符。
在应用程序开发中,运算符是最基本也是最常用的,它表示着一个表达式是如何进行运算的。常用的运算符如表2-6所示。
表2-6 常用的运算符
运算符类型 算术运算符 关系运算符 条件运算符 赋值运算符 运算符 +,-,*,/,% <,>,<=,>=,is,as &&,||,? =,+=,-=,*=,/=,<<=,>>=,&=,^=,|= 正如表2-5中所示,C#编程中所需要使用到的运算符都能够通过相应的类别进行相应的分类,但其分类的标准并不是唯一的。
3.算术运算符
程序开发中常常需要使用算术运算符,算术运算符用于创建和执行数学表达式,以实现加、减、乘、除等基本操作,示例代码如下所示。
int a = 1;
//声明整型变量 //使用+运算符 //使用-运算符
int c = a + b; int f = b - a; 4.关系运算符
关系运算符用于创建一个表达式,该表达式用来比较两个对象并返回布尔值。示例代码如下所示。 string a=\ string b=\
//声明字符串变量a //声明字符串变量b