C#与NET35高级程序设计1基础知识.docx
《C#与NET35高级程序设计1基础知识.docx》由会员分享,可在线阅读,更多相关《C#与NET35高级程序设计1基础知识.docx(47页珍藏版)》请在冰豆网上搜索。
C#与NET35高级程序设计1基础知识
.PRAT2C#核心编程结构
第三章:
c#核心编程结构I
概要:
●理解如何构建程序的应用程序对象以及可执行程序入口点Main()方法的构成。
●研究c#内建数据类型(包括System.String和System.Text.String和Builder类类型)
●数据类型转换技术,包括窄化运算、宽化运算以及uncheck关键字。
●构建有效C#代码语句的核心运算符、迭代结构和选择结构。
3.1一个简单的C#程序
类型:
指集合{类、接口、结构、枚举、委托}中得一个成员
例子:
namespaceSimpleCSharpApp
{
classProgram
staticvoidMain(string[]args)
Console.WriteLine("******MyFirstC#App*******");
Console.WriteLine("Hello,World");
Console.WriteLine();
Console.Read();//按ã¡ä下?
回?
车¦Ì后¨®关?
闭À?
}
定义Main方法的类叫做应用程序对象,这个方法表示应用程序的入口点。
String[]args指字符串数组。
说明:
c#是区分大小写字母的程序设计语言,C#的关键字都是小写的(public,lock,class,global)。
命名空间、类型和成员名称以一个大写字母开头,中间的单词都是首字母大写(例如Console.Writeline;System.Windows.Forms.MessageBox)
3.2System.Environment类的其他成员
Environment类:
通过不同的静态成员获得大量有关运行.NET应用程序的操作系统的细节。
staticintMain(string[]args)
for(inti=0;i{Console.WriteLine("ARG;{0}",args[i]);}ShowEnvironmentDetails();Console.ReadLine();return0;}staticvoidShowEnvironmentDetails(){foreach(stringdriveinEnvironment.GetLogicalDrives())Console.WriteLine("磁盘驱动器名称{0}",drive);Console.WriteLine("FolderAddr:{0}",Environment.CurrentDirectory);Console.WriteLine("OS:{0}",Environment.OSVersion);if(!Environment.Is64BitOperatingSystem){Console.WriteLine("该系统不是六十四位操作系统");}Console.WriteLine("NumberOfprocessors:{0}",Environment.ProcessorCount);Console.WriteLine(".NETversion{0}",Environment.Version);Console.WriteLine("{0}:{1}","Environment.UserName",Environment.UserName);//操作系统启动后经过的毫秒数Console.WriteLine("{0}:{1}","TickCount",Environment.TickCount/(60000*6));//操作系统文件的根目录Console.WriteLine("{0}:{1}","SystemDirectory",Environment.SystemDirectory);//机器名称Console.WriteLine("{0}:{1}","MachineName",Environment.MachineName);Console.WriteLine("{0}:{1}","Environment.StackTrace",Environment.StackTrace);Console.WriteLine("{0}:{1}","Environment.GetEnvironmentVariables()",Environment.GetEnvironmentVariables());//环境变量 }}3.3System.Console类1、部分成员:Beep():这个方法强制控制台发出指定频率和持续时间的蜂鸣声BackgroundColorForegroundColor:设置当前输出的背景和前景色。可以被赋予ConsoleColor枚举的任何成员。Title:设置当前控制台的标题。Clear():清除已建立的缓冲区和控制台的显示区域。2.使用Console类进行基本的输入输出。例子:classProgram{staticvoidMain(string[]args){Console.Title="helloworld";//定义控制台标题Console.WriteLine("*****BasicConsoleIO*****");getUserInfo();Console.Read();}staticvoidgetUserInfo(){//获取姓名和年龄Console.WriteLine("pleaseinputyourname:");stringusername=Console.ReadLine();Console.WriteLine("pleaseinputyourage:");stringage=Console.ReadLine();//设置前景色ConsoleColorforeColor=Console.ForegroundColor;Console.ForegroundColor=ConsoleColor.DarkRed;Console.WriteLine("Hello{0}!yourageis{1}",username,age);//恢复前景色Console.ForegroundColor=foreColor;}}解决从vs2010复制汉子粘贴到word乱码问题privatevoidbtn_fix_Click(objectsender,EventArgse){try{//取得剪贴板的内容:IDataObjectdataObject=Clipboard.GetDataObject();//确定粘贴的数据是否与指定的格式关联if(dataObject.GetDataPresent(DataFormats.Rtf)){//获取RTF数据stringrtf=dataObject.GetData(DataFormats.Rtf)asstring;//以Regex.Replace去掉多余的字符(不管是否有,一律强制去除)stringfixedRtf=Regex.Replace(rtf,@"\\uinput2(?\\u-?\d*)\s..",(m)=>{returnm.Groups["uc"].Value+"?";});//另外新建一个DataObject对象DataObjectnewDataObject=newDataObject();//RTF格式用修改后的字符串,其余的还原foreach(stringtindataObject.GetFormats())newDataObject.SetData(t,t=="RichTextFormat"?fixedRtf:dataObject.GetData(t));//将修改后的内容写入剪贴板Clipboard.SetDataObject(newDataObject,true);}}catch(Exceptionex){MessageBox.Show(ex.ToString());}}这是在vs2010中复制“取得”两个字后,所获取的“取得”的编译字符。取¨?得Ì?{\rtf\ansi{\fonttbl{\f0NSimSun;}}{\colortbl;\red0\green128\blue0;}\f0\fs19\cf1\uinput2\u21462è?\uinput2\u24471μ?\par}{\rtf\ansi{\fonttbl{\f0NSimSun;}}{\colortbl;\red0\green128\blue0;}\f0\fs19\cf1\u21462?\u24471?\par}{\rtf\ansi{\fonttbl{\f0NSimSun;}}{\colortbl;\red0\green128\blue0;}\f0\fs19\cf1\u21462?\u24471?\par}取得{\rtf\ansi{\fonttbl{\f0NSimSun;}}{\colortbl;\red0\green128\blue0;\red43\green145\blue175;\red0\green0\blue255;}\f0\fs19\cf1//\u21462?\u24471?\u21098?\u-29388?\u26495?\u30340?\u20869?\u23481?\u-230?\cf0\par\cf2IDataObject\cf0dataObject=\cf2Clipboard\cf0.GetDataObject();\par\cf1//\u30830?\u23450?\u31896?\u-29388?\u30340?\u25968?\u25454?\u26159?\u21542?\u19982?\u25351?\u23450?\u30340?\u26684?\u24335?\u20851?\u-32684?\cf0\par\cf3if\cf0(dataObject.GetDataPresent(\cf2DataFormats\cf0.Rtf))\par\{\cf1//\u-31817?\u21462?RTF\u25968?\u25454?\par}格式化数据类型:字符串格式字符作用C或c用于格式化货币,默认情况下以当地的货币符号为前缀{0:c}D或d格式化十进制数,指定填充值的最小个数{0:d8}E或e指数记数法{0:e}F或f定点小数的格式化,用于指定填充值的最小个数如{0:f3}G或g代表general。将一个数格式化为定点或指数格式N或n用于基本的数值格式化,带逗号{0:n}X或x十六进制格式化{0:x}格式化数据:控制台应用程序Console的输出和string.Format()方法的使用。3.4系统数据类型和C#简化符号C#定义了一组用于表示局部变量、成员变量、返回值以及输入参数的内建数据类型。这些关键字是System命名空间中完整类型的简化符号。(说明:符合CLS的.NET代码可以被任何托管编程语言使用,若出现不符合CLS的数据,其他语言可能就不能使用它们)如int符合CLS,系统类型为System.Int32,uint不符合CLS,系统类型为System.UInt32。默认情况下,实数值变量被当做double类型,为初始化float变量,使用后缀F或f,如(5.3F)每一个数值类型(short、int等)都对应System命名空间中的一个结构,结构是分配在栈上的“值类型”。而string和object是引用类型,也就是说变量是分配在托管堆上的。新建内建数据类型staticvoidMain(string[]args){Console.WriteLine("=>usingnewtocreateintrinsicdatatypes");intgwt=newint();//默认为0boolb=newbool();//默认为falseDoubled=newdouble();//默认为0DateTimet=newDateTime();//默认为0001-1-10:00:0000Console.WriteLine("{0},{1},{2},{3}",gwt,b,d,t);Console.ReadLine();}数据类型都派生自System.Object,其定义了一组.NET基类库中所有类型都具有的方法(ToString(),Equals(),GetHashCode()等)如:Console.WriteLine("=>system.object.functionality:<=");Console.WriteLine("18.Gethashcode={0}",18.GetHashCode());Console.WriteLine("18.Equales(23)={0}",18.Equals(23));Console.WriteLine("18.tostring()={0}",18.ToString());Console.WriteLine("18.GetType()={0}",18.GetType());Console.Read();数值数据类型的成员显示MaxValue和MinValueConsole.WriteLine("=>system.object.functionality:<=");Console.WriteLine("Maxofint{0}",int.MaxValue);Console.WriteLine("Minofint:{0}",int.MinValue);Console.WriteLine("MaxofDouble:{0}",double.MaxValue);Console.WriteLine("MinofDouble:{0}",double.MinValue);//表示大于零的最小System.Double值Console.WriteLine("double.Epsilon:{0}",double.Epsilon);//表示正无穷Console.WriteLine("double.PositiveInfinity:{0}",double.PositiveInfinity);//表示负无穷Console.WriteLine("double.NegativeInfinity:{0}",double.NegativeInfinity);Console.Read();3.5System.String的数据成员成员作用Length这个属性返回当前字符串的长度Compare()这个方法比较两个字符串Contains()这个方法用于判定当前字符串是否包含一个指定的子字符串Equals()测试两个字符串对象是否含有同样的字符数据Format()和{0}符号一起格式化一个字符串Insert()将一个字符串插入到指定字符串中PadLeft()在字符串内填充字符PadRight()Remove()接收一个修改(被删除或替换的字符)的字符串的副本Split()返回的字符串数组包含这个实例中由指定的char或string数组的元素分割的子字符串Trim()从当前字符串的头部和尾部移除一组遇到的所有指定字符ToUpper()创建一个给定字符串的大写或小写副本ToLower()例句:stringchan="hsowbeautifulcountryitis";//原语句stringstr="";str=chan.Remove(0,2);//从第0个位置开始去掉二个字符,sql语句中没有第0个Console.WriteLine(str);str=chan.Insert(3,"iamgwt");//在第三个位置插入语句Console.WriteLine(str);stringinput="beautiful";if(chan.Contains(input))//判断chan是否半酣input变量的内容str="yes";elsestr="no";Console.WriteLine(str);char_char='*';str=chan.PadLeft(48,_char);//字符长度为48,不足用*在左边填补Console.WriteLine(str);char[]arraychar={'s','h'};str=chan.Trim(arraychar);//去掉开头末尾处和arraychar相符的字符Console.WriteLine(str);str=chan.TrimEnd(arraychar);//去掉末尾处和arraychar相符的字符Console.WriteLine(str);str=chan.TrimStart(arraychar);//Console.WriteLine(str);Console.ReadLine();intt=str.CompareTo(str);Console.WriteLine(t);Console.Read();例二:数据类型的成员用法:Boolean、Char//System.Boolean成员Console.WriteLine("boolFalseString{0}",bool.FalseString);Console.WriteLine("bool.TrueString{0}",bool.TrueString);Console.WriteLine("bool.Parse{0}",bool.Parse("True"));//SystemChar的成员//使用System.Char类型可以判断一个给定的字符是否是数字、字母、标点符号或其他。stringtitle="helloworld--thisischarfunctionality";Console.WriteLine("{0}",title.PadLeft(36,'*'));charmychar='b';Console.WriteLine("char'b'isdigit{0}",char.IsDigit(mychar));Console.WriteLine("charbisletter{0}",char.IsLetter(mychar));//是不是标点符号Console.WriteLine("char.ispunctuation{0}",char.IsPunctuation('中'));Console.WriteLine("chariswhitespace{0}",char.IsWhiteSpace("xdshjlq",4));Console.WriteLine("iswhitespace{0}",char.IsWhiteSpace("xdshjlq"[4]));Console.Read();例三:从字符串数据中解析数值StaticvoidParseFromStrings(){Console.WriteLine(“thisisdatatypeparsing”);boolb=bool.Parse(“True”);}例四:基本的字符串操作staticvoidMain(string[]args){//基本的字符串操作和字符串拼接Console.WriteLine("==>BasicStringFunctionality:<==");stringFirstName="Frddygwt";Console.WriteLine("ValueOfFirstName{0}",FirstName);Console.WriteLine("FirstNamehas{0}Characters",FirstName.Length);Console.WriteLine("firstNameinupperCase{0}",FirstName.ToUpper());Console.WriteLine("FirstNameinlowerCase{0}",FirstName.ToLower());Console.WriteLine("FirstNameisContains\"gwt\"?{0}",FirstName.Contains("gwt"));//字符串是否包含‘gwt’Console.WriteLine("FirstNameafterreplace{0}",FirstName.Replace("dy","gwt"));Console.WriteLine();//字符串拼接stringt1="programthe";stringt2="psychodrill(ppp)";stringt3=string.Concat(t1,t2);//string.Concat()等效于“+”Console.WriteLine(t3);Console.Read();}例五:转义字符staticvoidMain(string[]args){//\a触发系统警报,蜂鸣。//\n换行//\t将一个制表符插入字符串字面量//\r回车//\\将一个反斜线插入一个字符串字面量,用来定义文件路径。Console.WriteLine("=>Escapecharacters:\a\r");stringstrWithTabs="model\tcolor\tspeed\tpetname\a";
{Console.WriteLine("ARG;{0}",args[i]);}
ShowEnvironmentDetails();
Console.ReadLine();
return0;
staticvoidShowEnvironmentDetails()
foreach(stringdriveinEnvironment.GetLogicalDrives())
Console.WriteLine("磁盘驱动器名称{0}",drive);
Console.WriteLine("FolderAddr:
{0}",Environment.CurrentDirectory);
Console.WriteLine("OS:
{0}",Environment.OSVersion);
if(!
Environment.Is64BitOperatingSystem)
{Console.WriteLine("该系统不是六十四位操作系统");}
Console.WriteLine("NumberOfprocessors:
{0}",Environment.ProcessorCount);
Console.WriteLine(".NETversion{0}",Environment.Version);
Console.WriteLine("{0}:
{1}","Environment.UserName",Environment.UserName);
//操作系统启动后经过的毫秒数
{1}","TickCount",Environment.TickCount/(60000*6));
//操作系统文件的根目录
{1}","SystemDirectory",Environment.SystemDirectory);
//机器名称
{1}","MachineName",Environment.MachineName);
{1}","Environment.StackTrace",Environment.StackTrace);
{1}","Environment.GetEnvironmentVariables()",Environment.GetEnvironmentVariables());//环境变量
3.3System.Console类
1、部分成员:
Beep():
这个方法强制控制台发出指定频率和持续时间的蜂鸣声
BackgroundColorForegroundColor:
设置当前输出的背景和前景色。
可以被赋予ConsoleColor枚举的任何成员。
Title:
设置当前控制台的标题。
Clear():
清除已建立的缓冲区和控制台的显示区域。
2.使用Console类进行基本的输入输出。
{Console.Title="helloworld";//定义控制台标题
Console.WriteLine("*****BasicConsoleIO*****");
getUserInfo();
Console.Read();
staticvoidgetUserInfo()
{//获取姓名和年龄
Console.WriteLine("pleaseinputyourname:
");
stringusername=Console.ReadLine();
Console.WriteLine("pleaseinputyourage:
stringage=Console.ReadLine();
//设置前景色
ConsoleColorforeColor=Console.ForegroundColor;
Console.ForegroundColor=ConsoleColor.DarkRed;
Console.WriteLine("Hello{0}!
yourageis{1}",username,age);
//恢复前景色
Console.ForegroundColor=foreColor;
解决从vs2010复制汉子粘贴到word乱码问题
privatevoidbtn_fix_Click(objectsender,EventArgse)
try
//取得剪贴板的内容:
IDataObjectdataObject=Clipboard.GetDataObject();
//确定粘贴的数据是否与指定的格式关联
if(dataObject.GetDataPresent(DataFormats.Rtf))
{//获取RTF数据
stringrtf=dataObject.GetData(DataFormats.Rtf)asstring;
//以Regex.Replace去掉多余的字符(不管是否有,一律强制去除)
stringfixedRtf=Regex.Replace(rtf,@"\\uinput2(?
\\u-?
\d*)\s..",(m)=>{returnm.Groups["uc"].Value+"?
";});
//另外新建一个DataObject对象
DataObjectnewDataObject=newDataObject();
//RTF格式用修改后的字符串,其余的还原
foreach(stringtindataObject.GetFormats())
newDataObject.SetData(t,t=="RichTextFormat"?
fixedRtf:
dataObject.GetData(t));
//将修改后的内容写入剪贴板
Clipboard.SetDataObject(newDataObject,true);
catch(Exceptionex)
{MessageBox.Show(ex.ToString());}
这是在vs2010中复制“取得”两个字后,所获取的“取得”的编译字符。
取¨?
得Ì?
{\rtf\ansi{\fonttbl{\f0NSimSun;}}{\colortbl;\red0\green128\blue0;}\f0\fs19\cf1\uinput2\u21462è?
\uinput2\u24471μ?
\par}
{\rtf\ansi{\fonttbl{\f0NSimSun;}}{\colortbl;\red0\green128\blue0;}\f0\fs19\cf1\u21462?
\u24471?
取得
{\rtf\ansi{\fonttbl{\f0NSimSun;}}{\colortbl;\red0\green128\blue0;\red43\green145\blue175;\red0\green0\blue255;}\f0\fs19\cf1//\u21462?
\u21098?
\u-29388?
\u26495?
\u30340?
\u20869?
\u23481?
\u-230?
\cf0\par\cf2IDataObject\cf0dataObject=\cf2Clipboard\cf0.GetDataObject();\par\cf1//\u30830?
\u23450?
\u31896?
\u25968?
\u25454?
\u26159?
\u21542?
\u19982?
\u25351?
\u26684?
\u24335?
\u20851?
\u-32684?
\cf0\par\cf3if\cf0(dataObject.GetDataPresent(\cf2DataFormats\cf0.Rtf))\par\{\cf1//\u-31817?
\u21462?
RTF\u25968?
格式化数据类型:
字符串格式字符
作用
C或c
用于格式化货币,默认情况下以当地的货币符号为前缀{0:
c}
D或d
格式化十进制数,指定填充值的最小个数{0:
d8}
E或e
指数记数法{0:
e}
F或f
定点小数的格式化,用于指定填充值的最小个数如{0:
f3}
G或g
代表general。
将一个数格式化为定点或指数格式
N或n
用于基本的数值格式化,带逗号{0:
n}
X或x
十六进制格式化{0:
x}
格式化数据:
控制台应用程序Console的输出和string.Format()方法的使用。
3.4系统数据类型和C#简化符号
C#定义了一组用于表示局部变量、成员变量、返回值以及输入参数的内建数据类型。
这些关键字是System命名空间中完整类型的简化符号。
(说明:
符合CLS的.NET代码可以被任何托管编程语言使用,若出现不符合CLS的数据,其他语言可能就不能使用它们)
如int符合CLS,系统类型为System.Int32,uint不符合CLS,系统类型为System.UInt32。
默认情况下,实数值变量被当做double类型,为初始化float变量,使用后缀F或f,如(5.3F)
每一个数值类型(short、int等)都对应System命名空间中的一个结构,结构是分配在栈上的“值类型”。
而string和object是引用类型,也就是说变量是分配在托管堆上的。
新建内建数据类型
Console.WriteLine("=>usingnewtocreateintrinsicdatatypes");
intgwt=newint();//默认为0
boolb=newbool();//默认为false
Doubled=newdouble();//默认为0
DateTimet=newDateTime();//默认为0001-1-10:
00:
0000
Console.WriteLine("{0},{1},{2},{3}",gwt,b,d,t);
数据类型都派生自System.Object,其定义了一组.NET基类库中所有类型都具有的方法(ToString(),Equals(),GetHashCode()等)
如:
Console.WriteLine("=>system.object.functionality:
<=");
Console.WriteLine("18.Gethashcode={0}",18.GetHashCode());
Console.WriteLine("18.Equales(23)={0}",18.Equals(23));
Console.WriteLine("18.tostring()={0}",18.ToString());
Console.WriteLine("18.GetType()={0}",18.GetType());
数值数据类型的成员显示MaxValue和MinValue
Console.WriteLine("Maxofint{0}",int.MaxValue);
Console.WriteLine("Minofint:
{0}",int.MinValue);
Console.WriteLine("MaxofDouble:
{0}",double.MaxValue);
Console.WriteLine("MinofDouble:
{0}",double.MinValue);
//表示大于零的最小System.Double值
Console.WriteLine("double.Epsilon:
{0}",double.Epsilon);
//表示正无穷
Console.WriteLine("double.PositiveInfinity:
{0}",double.PositiveInfinity);
//表示负无穷
Console.WriteLine("double.NegativeInfinity:
{0}",double.NegativeInfinity);
3.5System.String的数据成员
成员
Length
这个属性返回当前字符串的长度
Compare()
这个方法比较两个字符串
Contains()
这个方法用于判定当前字符串是否包含一个指定的子字符串
Equals()
测试两个字符串对象是否含有同样的字符数据
Format()
和{0}符号一起格式化一个字符串
Insert()
将一个字符串插入到指定字符串中
PadLeft()
在字符串内填充字符
PadRight()
Remove()
接收一个修改(被删除或替换的字符)的字符串的副本
Split()
返回的字符串数组包含这个实例中由指定的char或string数组的元素分割的子字符串
Trim()
从当前字符串的头部和尾部移除一组遇到的所有指定字符
ToUpper()
创建一个给定字符串的大写或小写副本
ToLower()
例句:
stringchan="hsowbeautifulcountryitis";//原语句
stringstr="";
str=chan.Remove(0,2);//从第0个位置开始去掉二个字符,sql语句中没有第0个
Console.WriteLine(str);
str=chan.Insert(3,"iamgwt");//在第三个位置插入语句
stringinput="beautiful";
if(chan.Contains(input))//判断chan是否半酣input变量的内容
str="yes";
else
str="no";
char_char='*';
str=chan.PadLeft(48,_char);//字符长度为48,不足用*在左边填补
char[]arraychar={'s','h'};
str=chan.Trim(arraychar);//去掉开头末尾处和arraychar相符的字符
str=chan.TrimEnd(arraychar);//去掉末尾处和arraychar相符的字符
str=chan.TrimStart(arraychar);//
intt=str.CompareTo(str);
Console.WriteLine(t);
例二:
数据类型的成员用法:
Boolean、Char
//System.Boolean成员
Console.WriteLine("boolFalseString{0}",bool.FalseString);
Console.WriteLine("bool.TrueString{0}",bool.TrueString);
Console.WriteLine("bool.Parse{0}",bool.Parse("True"));
//SystemChar的成员
//使用System.Char类型可以判断一个给定的字符是否是数字、字母、标点符号或其他。
stringtitle="helloworld--thisischarfunctionality";
Console.WriteLine("{0}",title.PadLeft(36,'*'));
charmychar='b';
Console.WriteLine("char'b'isdigit{0}",char.IsDigit(mychar));
Console.WriteLine("charbisletter{0}",char.IsLetter(mychar));
//是不是标点符号
Console.WriteLine("char.ispunctuation{0}",char.IsPunctuation('中'));
Console.WriteLine("chariswhitespace{0}",char.IsWhiteSpace("xdshjlq",4));
Console.WriteLine("iswhitespace{0}",char.IsWhiteSpace("xdshjlq"[4]));
例三:
从字符串数据中解析数值
StaticvoidParseFromStrings()
{Console.WriteLine(“thisisdatatypeparsing”);
boolb=bool.Parse(“True”);
例四:
基本的字符串操作
{//基本的字符串操作和字符串拼接
Console.WriteLine("==>BasicStringFunctionality:
<==");
stringFirstName="Frddygwt";
Console.WriteLine("ValueOfFirstName{0}",FirstName);
Console.WriteLine("FirstNamehas{0}Characters",FirstName.Length);
Console.WriteLine("firstNameinupperCase{0}",FirstName.ToUpper());
Console.WriteLine("FirstNameinlowerCase{0}",FirstName.ToLower());
Console.WriteLine("FirstNameisContains\"gwt\"?
{0}",FirstName.Contains("gwt"));//字符串是否包含‘gwt’
Console.WriteLine("FirstNameafterreplace{0}",FirstName.Replace("dy","gwt"));
//字符串拼接
stringt1="programthe";
stringt2="psychodrill(ppp)";
stringt3=string.Concat(t1,t2);//string.Concat()等效于“+”
Console.WriteLine(t3);
例五:
转义字符
{//\a触发系统警报,蜂鸣。
//\n换行
//\t将一个制表符插入字符串字面量
//\r回车
//\\将一个反斜线插入一个字符串字面量,用来定义文件路径。
Console.WriteLine("=>Escapecharacters:
\a\r");
stringstrWithTabs="model\tcolor\tspeed\tpetname\a";
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1