西安公司网站设计费用广告字设计免费生成
西安公司网站设计费用,广告字设计免费生成,系统优化加速工具,总结什么是网络营销目录 问题解答集 1 目录 2 修订历史纪录 3 1 什么是.net 4 1.1 .net的定义 4 1.2 什么是C# 4 1.3 C#与C#xff0c;C的相同之处 5 2 有关Update程序 6 2.1 WinForm中Button控件的使用 6 2.2 将double类型的变量保留固定位数的小数部分 7 …目录 问题解答集 1 目录 2 修订历史纪录 3 1 什么是.net 4 1.1 .net的定义 4 1.2 什么是C# 4 1.3 C#与CC的相同之处 5 2 有关Update程序 6 2.1 WinForm中Button控件的使用 6 2.2 将double类型的变量保留固定位数的小数部分 7 2.3 如何使用浏览文件夹和确定保存地址 7 2.4 如何读取本地的.txt 文件 7 2.5 如何调用.exe文件 7 2.6 如何获取.exe文件所在地址 8 2.7 如何获取下载文件的大小 8 2.8 如何实现具有断点续传功能的文件下载 8 2.9 ProgressBar的使用 13 2.10 在Xml文件中修改节点 13 1 什么是.net .net的定义 NET Framework是Microsoft为开发应用程序而创建的一个富有革命性的新平台。 这句话最有趣的地方是它的含糊不清但这是有原因的。首先注意这句话没有说在Windows操作系统上开发应用程序。尽管.NET Framework的Microsoft版本运行在Windows操作系统上但以后将推出运行在其他操作系统上的版本例如Mono它是.NET Framework的开发源代码版本(包含一个C#编译器)该版本可以运行在几个操作系统上包括各种Linux版本和Mac OS。许多这类项目正在开发在读者阅读本书时可能就已发布了。另外还可以在个人数字助手(PDA)类设备和一些智能电话上使用Microsoft .NET Compact Framework(基本上是完整 .NET Framework的一个子集)。使用.NET Framework的一个主要原因是它可以作为集成各种操作系统的方式。 另外上面给出的.NET Framework定义并没有限制应用程序的类型。这是因为本来就没有限制。.NET Framework可以创建Windows应用程序、Web应用程序、Web服务和其他各种类型的应用程序。 .NET Framework的设计方式保证它可以用于各种语言包括本书要介绍的C#语言以及C、Visual Basic、JScript甚至一些旧的语言如COBOL。为此还推出了这些语言的.NET版本目前还在不断推出更多的.NET版本的语言。所有 这些语言都可以访问.NET Framework它们还可以彼此交互。C#开发人员可以使用Visual Basic程序员编写的代码反之亦然。 所有这些提供了意想不到的多样性这也是.NET Framework具有诱人前景的部分原因。 1.2 什么是C# C#(读做 C sharp中文译音夏普)是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言,并定于在微软职业开发者论坛(PDC)上登台亮相.C#是微软公司研究员Anders Hejlsberg的最新成果.C#看起来与Java有着惊人的相似;它包括了诸如单一继承,界面,与Java几乎同样的语法,和编译成中间代码再运行的过程.但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NET windows网络框架的主角. C#与CC的相同之处 编译:程序直接编译成标准的二进制可执行形式.但C#的源程序并不是被编译成二进制可执行形式而是一中中间语言类似于JAVA字节码。如果前面的Hello World程序被保存成一个文本文件并被命名为Hello.cs,它将被编译成命名Hello.exe的可执行程序. 结构体:一个C#的结构体与C的结构体是相似的,因为它能够包含数据申明和方法.但是,不象C,C#结构体与类是不同的而且不支持继承.但是,与Java相同的是,一个结构体可以实现界面. 预编译:C#中存在预编译指令支持条件编译,警告,错误报告和编译行控制.可用的预编译指令有: #define #undef #if #elif #else #endif #warning #error #line [] 没有了#include 伪指令.你无法再用#define 语句对符号赋值,所以就不存在源代码替换的概念--这些符号只能用在#if和#elif伪指令里.在#line伪指令里的数字(和可选的名字)能够修改行号还有#warning和#error输出结果的文件名. 操作符重载:一些操作符能够被重载,而另一些则不能.特别的是,没有一个赋值运算符能够被重载.能够被被重载的单目操作符是: - ! ~ -- true false 能够被重载的二元运算符是: - * / % | ^ ! 2 有关Update程序 2.1 WinForm中Button控件的使用 button下的 this.Text what...; 可以改变窗口标题。 button下的Message.Show(what...); 可以弹出对话框对话框中显示其中文字。button下的Application.Exit; 单击后推出程序。 2.2 将double类型的变量保留固定位数的小数部分 System.Math.Round(double型变量保留位数)。 2.3 如何使用浏览文件夹和确定保存地址 浏览button和位置(textBox)代码 private void button2_Click(object sender, System.EventArgs e) { if (this.folderBrowserDialog1.ShowDialog()DialogResult.OK) { this.textBox1.TextfolderBrowserDialog1.SelectedPath.ToString(); } } 2.4 如何读取本地的.txt 文件 FileStream oldFile new FileStream(1.txt, FileMode.Open); StreamReader sr1 new StreamReader(oldFile); formerEdition sr1.ReadLine(); 此处读取.exe文件所在文件夹的1.txt文件此处指读取一行程序中用于读取本地版本号。 2.5 如何调用.exe文件 private void button1_Click(object sender, EventArgs e) { string exe_path C:\Program Files\Tencent\QQ\; System.Diagnostics.Process process new System.Diagnostics.Process(); process.StartInfo.FileName qq.exe; process.StartInfo.WorkingDirectory exe_path; process.StartInfo.CreateNoWindow true ; process.Start(); if (process.HasExited) { MessageBox.Show(complete); } } 此处用于在下载完更新文件后自动运行。可将此代码粘到下载代码后用于Update程序。 2.6 如何获取.exe文件所在地址 di Path.GetDirectoryName(Application.ExecutablePath); 此前需要加入using System.IO; 另外使用Environment.GetEnvironmentVariable(path)函数可以达到同样的效果 2.7 如何获取下载文件的大小 System.Net.HttpWebRequest Myrq (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(http://172.27.8.103/Update/%E7%81%AB%E5%BD%B1/火影.rar); System.Net.HttpWebResponse myrp (System.Net.HttpWebResponse)Myrq.GetResponse(); long totalBytes myrp.ContentLength; 前两行用于与服务器建立连接第三行用于获得下载文件的大小。 2.8 如何实现具有断点续传功能的文件下载 di Path.GetDirectoryName(Application.ExecutablePath); di \\abc.rar; long lStartPos 0; //用于记录断点位置 System.IO.FileStream fs; if (System.IO.File.Exists(di)) { fs System.IO.File.OpenWrite(di); lStartPos fs.Length; fs.Seek(lStartPos, System.IO.SeekOrigin.Current); //移动文件流中的当前指针 } else { fs new System.IO.FileStream(di, System.IO.FileMode.Create);//fiel stream*************************************** lStartPos 0; } Myrq (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(http://172.27.8.103/Update/%E7%81%AB%E5%BD%B1/火影.rar); //************ //***************************2007-9-4 if (lStartPos 0) Myrq.AddRange((int)lStartPos); //设置Range值 //**************************2007-9-4 //向服务器请求获得服务器回应数据流 long totalDownloadedByte lStartPos; this.timer1.Enabled true; System.IO.Stream st Myrq.GetResponse().GetResponseStream(); byte[] by new byte[1024]; int osize st.Read(by, 0, (int)by.Length); int aaa 0; while (osize 0) { totalDownloadedByte osize totalDownloadedByte; Application.DoEvents(); fs.Write(by, 0, osize); Prog.Value (int)totalDownloadedByte; osize st.Read(by, 0, (int)by.Length); label2.Text Convert.ToString((long)totalDownloadedByte*100/totalBytes)%; //显示下载的百分比 if ((aaa % 2000) 0) { if (totalDownloadedByte / (1024 * totalseconds * 1024) 0) this.label3.Text 平均速度 (totalDownloadedByte / (1024 * totalseconds)) KB/s; else this.label3.Text 平均速度 System.Math.Round(((float)totalDownloadedByte / (1024 * totalseconds * 1024)), 2) MB/s; this.label6.Text 剩余时间 ((totalBytes - totalDownloadedByte) / (totalDownloadedByte / totalseconds)) s; if (totalDownloadedByte / (1024 * 1024) 0) this.label7.Text 已下载 System.Math.Round(((float)totalDownloadedByte / 1024), 2) KB / Convert.ToString(System.Math.Round(((float)((double)(totalBytes) / 1024) / 1024), 2)) MB; else this.label7.Text 已下载 System.Math.Round(((float)totalDownloadedByte / (1024 * 1024)), 2) MB / Convert.ToString(System.Math.Round(((float)((double)(totalBytes) / 1024) / 1024), 2)) MB; this.label8.Text 已用时间 Convert.ToString(totalseconds) s; if (stop) { st.Close(); fs.Close(); return; } } aaa; if (stop) { st.Close(); fs.Close(); return; } } this.timer1.Enabled false; if (totalDownloadedByte / (1024 * 1024) 0) this.label7.Text 已下载 System.Math.Round(((float)totalDownloadedByte / 1024), 2) KB / Convert.ToString(System.Math.Round(((float)((double)(totalBytes) / 1024) / 1024), 2)) MB; else this.label7.Text 已下载 System.Math.Round(((float)totalDownloadedByte / (1024 * 1024)), 2) MB / Convert.ToString(System.Math.Round(((float)((double)(totalBytes) / 1024) / 1024), 2)) MB; this.label8.Text 已用时间 Convert.ToString(totalseconds) s; 此段程序的执行过程是首先在.exe文件所在的文件加中寻找是否存在abc.exe文件如果已存在上一次的下载并未完成获取abc.exe文件的大小并设置文件流中的指针以使其指向文件的末尾同时为设置与服务器连接时的Range值做准备。如果不存在abc.exe文件则创建。之后建立与服务器的连接并相应的设置其Range值之后进行下载。下载同时加入了下载速率剩余时间已用时间等的计算并相应的设置ProgressBar.Value的值。由于下载速率等刷新速度过快加入while循环语句使其刷新速率落后于ProgressBar的刷新速率2000倍经过测试比较合适。为使最后的下载值与最后的文件大小相适下载完再刷新一次。 2.9 ProgressBar的使用 使用时先要设置ProgressBar.Maximun的值在刷新设置ProgressBar.Value的值时其值不得大于ProgressBar.Maximun的值。可将ProgressBar.Value值的设置放到下载循环中以用于刷新。 2.10 在Xml文件中修改节点 XmlNodeList nodeListxmlDoc.SelectSingleNode(bookstore).ChildNodes;//获取bookstore节点的所有子节点 foreach(XmlNode xn in nodeList)//遍历所有子节点 { XmlElement xe(XmlElement)xn;//将子节点类型转换为XmlElement类型 if(xe.GetAttribute(genre)李赞红)//如果genre属性值为李赞红 { xe.SetAttribute(genre,update李赞红);//则修改该属性为update李赞红 XmlNodeList nlsxe.ChildNodes;//继续获取xe子节点的所有子节点 foreach(XmlNode xn1 in nls)//遍历 { XmlElement xe2(XmlElement)xn1;//转换类型 if(xe2.Nameauthor)//如果找到 { xe2.InnerText亚胜;//则修改 break;//找到退出来就可以了 } } break; } } xmlDoc.Save(bookstore.xml);//保存。 相应被修改的Xml文件如下: ?xml version1.0 encodinggb2312?bookstore book genrefantasy ISBN2-3631-4 titleOberons Legacy/title authorCorets, Eva/author price5.95/price /book book genre李赞红 ISBN2-3631-4 titleCS从入门到精通/title author候捷/author price58.3/price /book/bookstore
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/88935.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!