C#与NET35高级程序设计1基础知识.docx
- 文档编号:8691555
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:47
- 大小:45.06KB
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应用程序的操作系统的细节。
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(? \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";
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# NET35 高级 程序设计 基础知识
![提示](https://static.bdocx.com/images/bang_tan.gif)