77范文网 - 专业文章范例文档资料分享平台

C#入门经典第三版(最新)(3)

来源:网络收集 时间:2019-03-27 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

int[] a2=new int[3]{1,2,3};//此格式也正确

int[] a3={1,2,3};//相当于int[] a3=new int[]{1,2,3};

int[,] a4=new int[,]{{1,2,3},{4,5,6}};//二维数组,a4[1,1]=5

int[][] j2=new int[3][];//定义数组j2,有三个元素,每个元素都是一个数组 j2[0]=new int[]{1,2,3};//定义第一个元素,是一个数组

j2[1]=new int[]{1, 2, 3, 4, 5, 6};//每个元素的数组可以不等长 j2[2]=new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9}; 1.4.10 字符串类(string类) C#还定义了一个基本的类string,专门用于对字符串的操作。这个类也是在名字空间System中定义的,是类System.String的别名。字符串应用非常广泛,在string类的定义中封装了许多方法,下面的一些语句展示了string类的一些典型用法: ? 字符串定义

string s;//定义一个字符串引用类型变量s

s=\字符串引用类型变量s指向字符串\string FirstName=\string LastName=\

string Name=FirstName+\运算符+已被重载 string SameName=Name;

char[] s2={'计','算','机','科','学'}; string s3=new String(s2); ? 字符串搜索

string s=\科学\int i=s.IndexOf(\科\

搜索\科\在字符串中的位置,因第一个字符索引为0,所以\索引为0,\科\索引为3,因此这里i=3,如没有此字符串i=-1。注意C#中,ASCII和汉字都用2字节表示。 ? 字符串比较函数 string s1=\string s2=\

int n=string.Compare(s1,s2);//n=0

n=0表示两个字符串相同,n小于零,s1s2。此方法区分大小写。也可用如下办法比较字符串: string s1=\string s=\string s2=\不相同\

if(s==s1)//还可用!=。虽然String是引用类型,但这里比较两个字符串的值 s2=\相同\

? 判断是否为空字符串 string s=\string s1=\不空\if(s.Length==0) s1=\空\

? 得到子字符串或字符 string s=\取子字符串\

string sb=s.Substring(2,2);//从索引为2开始取2个字符,Sb=\字符\内容不变

char sb1=s[0];//sb1='取'

Console.WriteLine(sb1);//显示:取 ? 字符串删除函数 string s=\取子字符串\

string sb=s.Remove(0,2);//从索引为0开始删除2个字符,Sb=\字符串\内容不变 ? 插入字符串

string s=\计算机科学\

string s1=s.Insert(3,\软件\计算机软件科学\,s内容不变 ? 字符串替换函数 string s=\计算机科学\

string s1=s.Replace(\计算机\软件\软件科学\,s内容不变 ? 把String转换为字符数组 string S=\计算机科学\

char[] s2=S.ToCharArray(0,S.Length);//属性Length为字符类对象的长度 ? 其它数据类型转换为字符串 int i=9;

string s8=i.ToString();//s8=\float n=1.9f;

string s9=n.ToString();//s8=\

其它数据类型都可用此方法转换为字符类对象 ? 大小写转换 string s=\

string s1=s.ToLower();//把字符转换为小写,s内容不变 string s2=s.ToUpper();//把字符转换为大写,s内容不变 ? 删除所有的空格 string s=\

s.Trim();//删除所有的空格

string类其它方法的使用请用帮助系统查看,方法是打开Visual Studio.Net的代码编辑器,键入string,将光标移到键入的字符串string上,然后按F1键。 1.4.11 类型转换

在编写C#语言程序中,经常会碰到类型转换问题。例如整型数和浮点数相加,C#会进行隐式转换。详细记住那些类型数据可以转换为其它类型数据,是不可能的,也是不必要的。程序员应记住类型转换的一些基本原则,编译器在转换发生问题时,会给出提示。C#语言中类型转换分为:隐式转换、显示转换、加框(boxing)和消框(unboxing)等三种。 一. 隐式转换

隐式转换就是系统默认的、不需要加以声明就可以进行的转换。例如从int类型转换到long类型就是一种隐式转换。在隐式转换过程中,转换一般不会失败,转换过程中也不会导致信息丢失。例如: int i=10; long l=i;

二. 显示转换

显式类型转换,又叫强制类型转换。与隐式转换正好相反,显式转换需要明确地指定转换类型,显示转换可能导致信息丢失。下面的例子把长整形变量显式转换为整型: long l=5000;

int i=(int)l;//如果超过int取值范围,将产生异常 三. 加框(boxing)和消框(unboxing)

加框(boxing)和消框(unboxing)是C#语言类型系统提出的核心概念,加框是值类型转换为object(对象)类型,消框是object(对象)类型转换为值类型。有了加框和消框的概念,对任何类型的变量来说最终我们都可以看作是object类型。 1 加框操作

把一个值类型变量加框也就是创建一个object对象,并将这个值类型变量的值复制给这个object对象。例如: int i=10;

object obj=i;//隐式加框操作,obj为创建的object对象的引用。 我们也可以用显式的方法来进行加框操作,例如: int i =10;

object obj=object(i);//显式加框操作 值类型的值加框后,值类型变量的值不变,仅将这个值类型变量的值复制给这个object对象。我们看一下下面的程序: using System class Test

{ public static void Main() { int n=200; object o=n;

o=201;//不能改变n

Console.WriteLine(\} }

输出结果为:200,201。这就证明了值类型变量n和object类对象o都独立存在着。 2. 消框操作

和加框操作正好相反,消框操作是指将一个对象类型显式地转换成一个值类型。消框的过程分为两步:首先检查这个object对象,看它是否为给定的值类型的加框值,如是,把这个对象的值拷贝给值类型的变量。我们举个例子来看看一个对象消框的过程: int i=10; object obj=i;

int j=(int)obj;//消框操作

可以看出消框过程正好是加框过程的逆过程,必须注意加框操作和消框操作必须遵循类型兼容的原则。

3. 加框和消框的使用 定义如下函数:

void Display(Object o)//注意,o为Object类型 { int x=(int)o;//消框

System.Console.WriteLine(\}

调用此函数:int y=20;Display(y);在此利用了加框概念,虚参被实参替换:Object o=y,也就是说,函数的参数是Object类型,可以将任意类型实参传递给函数。 1.5 运算符

C#语言和C语言的运算符用法基本一致。以下重点讲解二者之间不一致部分。

1.5.1 运算符分类

与C语言一样,如果按照运算符所作用的操作数个数来分,C#语言的运算符可以分为以下几种类型:

? 一元运算符:一元运算符作用于一个操作数,例如:-X、++X、X--等。 ? 二元运算符:二元运算符对两个操作数进行运算,例如:x+y。 ? 三元运算符:三元运算符只有一个:x? y:z。

C#语言运算符的详细分类及操作符从高到低的优先级顺序见下表。 类别 操作符

初级操作符 (x) x.y f(x) a[x] x++ x-- new type of sizeof checked unchecked 一元操作符 + - ! ~ ++x –x (T)x 乘除操作符 * / % 加减操作符 + - 移位操作符 << >>

关系操作符 < > <= >= is as 等式操作符 == != 逻辑与操作符 & 逻辑异或操作符 ^ 逻辑或操作符 | 条件与操作符 && 条件或操作符 || 条件操作符 ?:

赋值操作符 = *= /= %= += -= <<= >>= &= ^= |= 1.5.2 测试运算符is

is操作符用于动态地检查表达式是否为指定类型。使用格式为:e is T,其中e是一个表达式,T是一个类型,该式判断e是否为T类型,返回值是一个布尔值。例子: using System; class Test

{ public static void Main()

{ Console.WriteLine(1 is int); Console.WriteLine(1 is float); Console.WriteLine(1.0f is float); Console.WriteLine(1.0d is double); } }

输出为: True False True True

1.5.3 typeof运算符

typeof操作符用于获得指定类型在system名字空间中定义的类型名字,例如: using System; class Test

{ static void Main()

{ Console.WriteLine(typeof(int));

Console.WriteLine(typeof(System.Int32)); Console.WriteLine(typeof(string)); Console.WriteLine(typeof(double[])); } }

产生如下输出,由输出可知int和System.int32是同一类型。 System.Int32 System.Int32 System.String System.Double[]

1.5.4 溢出检查操作符checked和unchecked

在进行整型算术运算(如+、-、*、/等)或从一种整型显式转换到另一种整型时,有可能出现运算结果超出这个结果所属类型值域的情况,这种情况称之为溢出。整型算术运算表达式可以用checked或unchecked溢出检查操作符,决定在编译和运行时是否对表达式溢出进行检查。如果表达式不使用溢出检查操作符或使用了checked操作符,常量表达式溢出,在编译时将产生错误,表达式中包含变量,程序运行时执行该表达式产生溢出,将产生异常提示信息。而使用了unchecked操作符的表达式语句,即使表达式产生溢出,编译和运行时都不会产生错误提示。但这往往会出现一些不可预期的结果,所以使用unchecked操作符要小心。下面的例子说明了checked和unchecked操作符的用法: using System; class Class1

{ static void Main(string[] args) { const int x=int.MaxValue; unchecked//不检查溢出

{ int z=x*2;//编译时不产生编译错误,z=-2 Console.WriteLine(\显示-2 }

checked//检查溢出

{ int z1=(x*2);//编译时会产生编译错误 Console.WriteLine(\ } } }

1.5.5 new运算符

new操作符可以创建值类型变量、引用类型对象,同时自动调用构造函数。例如: int x=new int();//用new创建整型变量x,调用默认构造函数

Person C1=new Person ();//用new建立的Person类对象。Person 变量C1对象的引用 int[] arr=new int[2];//数组也是类,创建数组类对象,arr是数组对象的引用 需注意的是,int x=new int()语句将自动调用int结构不带参数的构造函数,给x赋初值0,x仍是值类型变量,不会变为引用类型变量。 1.5.6 运算符的优先级

当一个表达式包含多种操作符时,操作符的优先级控制着操作符求值的顺序。例如,表达式x+y*z按照x+(y*z)顺序求值,因为*操作符比+操作符有更高的优先级。这和数学运算中的先

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C#入门经典第三版(最新)(3)在线全文阅读。

C#入门经典第三版(最新)(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/545986.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: