C#与NET35高级程序设计1基础知识.docx

上传人:b****7 文档编号:8691555 上传时间:2023-02-01 格式:DOCX 页数:47 大小:45.06KB
下载 相关 举报
C#与NET35高级程序设计1基础知识.docx_第1页
第1页 / 共47页
C#与NET35高级程序设计1基础知识.docx_第2页
第2页 / 共47页
C#与NET35高级程序设计1基础知识.docx_第3页
第3页 / 共47页
C#与NET35高级程序设计1基础知识.docx_第4页
第4页 / 共47页
C#与NET35高级程序设计1基础知识.docx_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

C#与NET35高级程序设计1基础知识.docx

《C#与NET35高级程序设计1基础知识.docx》由会员分享,可在线阅读,更多相关《C#与NET35高级程序设计1基础知识.docx(47页珍藏版)》请在冰豆网上搜索。

C#与NET35高级程序设计1基础知识.docx

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应用程序的操作系统的细节。

classProgram

{

staticintMain(string[]args)

{

Console.WriteLine("******MyFirstC#App*******");

Console.WriteLine("Hello,World");

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();//默认为0

boolb=newbool();//默认为false

Doubled=newdouble();//默认为0

DateTimet=newDateTime();//默认为0001-1-10:

00:

0000

Console.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和MinValue

Console.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";

else

str="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";

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1