C#经典项目经验总结

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

原価プロジェクト知識1.String与string的区别string是c#中的类,String是.netFramework的类(在c#IDE中不会显示蓝色)c#string映射为.netFramework的String如果用string,编译器会把它编译成String,所以如果直接用String就可以让编译器少做一点点工作如果使用c#,建议使用string,比较符合规范string始终代表System.String(1.x)或::System.String(2.0),String只有在前面有usingSystem;的时候并且当前命名空间中没有名为String的类型(class、struct、delegate、enum)的时候才代表System.Stringstring是关键字,String不是,也就是说string不能作为类、结构、枚举、字段、变量、方法、属性的名称,而String可以。2.Convert.ToInt32();与Int32.Parse的区别Convert.ToInt32()与int.Parse()的区别(1)这两个方法的最大不同是它们对null值的处理方法:Convert.ToInt32(null)会返回0而不会产生任何异常,但int.Parse(null)则会产生异常。2)还有一点区别就是a.Convert.ToInt32(doublevalue)如果value为两个整数中间的数字,则返回二者中的偶数;即3.5转换为4,4.5转换为4,而5.5转换为6。不过4.6可以转换为5,4.4转换为4b.int.Parse(4.5)直接报错:输入字符串的格式不正确.c.int(4.6)=4Int转化其他数值类型为Int时没有四舍五入,强制转换int.Parse是转换String为intConvert.ToInt32是转换继承自Object的对象为int的.你得到一个object对象,你想把它转换为int,用int.Parse就不可以,要用Convert.ToInt32.个人总结:(1)Convert.ToInt32的参数比较多,Int.Parse只能转换string类型的.(2)Parse就是把String转换成int,char,double....等,也就是*.Parse(string)括号中的一定要是string.(3)Convert可以提供多种类型的转换,也就是Convert.*()括号中可以为很多种类型(包括string).2.Subst命令的使用Subst是DOS下的一个优秀的命令,它的可执行文件Subst.exe在C:\Windows\system32文件夹下(此路径指windowsxp系统),其正规的中文名称应该是“给目录赋驱动器符命令”。它的功能是以磁盘驱动器符代替路径名称,以使驱动器符与指定的子目录路径等效。其命令格式很简单:SubstDrive1Drive2Path,substR:C:¥LiuProject¥GenKaRun其中“Drive1”是指定替代磁盘路径的虚拟的新驱动器符,“Drive2Path”是指定所要替代的文件夹及其路径。用户可以利用它将任意目录虚拟成一个磁盘驱动器,如果用户需要删除虚拟的盘符,可以执行SubstDrive1/D命令。同时,并非所有的程序都可以正确使用Subst命令所生成的驱动器符,比如Format、Sys、Fdisk等一些如今还常用的命令,这些命令必须使用真实的驱动器,它们拒绝对Subst虚拟的驱动器进行操作。对于网络磁盘驱动器,Subst命令也是无能为力的。在dos命令提示符下执行subst命令虚拟增加的盘符,重启电脑或者注销电脑后,虚拟增加的盘符会消失,如果重启电脑或者注销电脑后盘符不消失,可以编辑批处理放在启动脚本里即可。网上说的是编辑系统根目录下的AUTOEXEC.BAT文件,在我的电脑上试过了,不行的,也许与另有原因吧。高级使用技巧初步了解了Subst命令的用途及用法,不妨再看看它的一些高级使用技巧:1.隐藏驱动器Subst的看家本领是虚拟磁盘驱动器符,虽然微软建议用户采用没有使用的盘符进行虚拟,但并不表示它不能虚拟已经存在的盘符,比如A盘、C盘等。于是用户可以通过Subst命令虚拟A、C等盘符,直接覆盖这些已经存在的盘符,使他人无法看到该盘的真正内容,以达到隐藏真实驱动器的目的。例如,用户先在D盘根目录下创建一个名为“Aaa”的文件夹,最好将文件夹的属性设置为“只读”和“隐藏”。然后在C盘根目录下打开“Autoexec.bat”文件,加入以下代码:@EchoOffC\Windows\system32\SubstAD\Aaa这样每次在系统启动后软盘的图标就变为硬盘的样子,其中的内容也变了,从而实现偷梁换柱的目的。需要还原的时候,只需在MS-DOS方式下,运行“SubstA/D”就行了。2.特殊软件的安装有少数软件在安装时会提示需要从A盘中提取安装信息,这时难道只有将文件拷贝到软盘后再安装吗?完全没有这个必要,Subst命令可以“欺骗”这些需要用软盘安装的软件。用户把软盘中的文件全部拷贝到硬盘上的任意文件夹中,再将该文件夹用Subst命令虚拟成A盘后,即可顺利安装。3.模拟光盘自动运行目前大部分多媒体光盘都带有一个自动运行命令,方便了用户的使用。然而若将光盘上的所有内容全盘拷贝到硬盘上就不能正常运行。这时,用户可以将放置光盘内容的文件夹虚拟成光盘驱动器(SubstFD\Guangpan,假设F为光驱),则软件能正常运行。3.ASP.NETUseSubmitBehavior属性如果该控件使用了客户端浏览器的提交机制,则为true;否则为false。默认值为true。当UseSubmitBehavior属性为false时,控件开发人员可以使用GetPostBackEventReference方法来返回Button的客户端回发事件。GetPostBackEventReference方法返回的字符串包含客户端函数调用的文本,可以插入到客户端事件处理程序中。4.Button控件的onclick、oncommand、commandname、CommandArgument的区别.Button控件Button控件在执行后被解析为inputtype=submit代码,而Button控件的优点就在于提交程序的同时能够传递参数,传递参数是靠CommandName与CommandArgument属性来完成的。举两个Button控件的例子。%@PageLanguage=C#%ScriptLanguage=C#Runat=ServerpublicvoidButton_Click(Objectsender,EventArgse){stringargName=((Button)sender).CommandName;//sender为一个对象,故CommandArgument为stringstringargArg=((Button)sender).CommandArgument;Label1.Text=您选中的动作为:fontcolor=red+argName+/font,动作目标是:fontcolor=red+argArg+/font;}/scripthtmlheadtitle/title/headbodybButton控件演示/bhrformrunat=serverasp:Buttonid=Button1CommandName=踢CommandArgument=足球Text=动作1runat=serverOnClick=Button_Click/brasp:Buttonid=Button2CommandName=打CommandArgument=篮球Text=动作2runat=serverOnClick=Button_Click/brhrasp:Labelid=Label1runat=server//form/body/html////////////////////////////////////%@PageLanguage=C#%ScriptLanguage=C#Runat=ServerpublicvoidButton_Click(Objectsender,CommandEventArgse){stringargName=e.CommandName;//CommandEventArgsr为一个类,故CommandArgument.ToString();stringargArg=e.CommandArgument.ToString();Label1.Text=您选中的动作为:fontcolor=red+argName+/font,动作目标是:fontcolor=red+argArg+/font;}/scripthtmlheadtitle/title/headbodybButton控件演示/bhrformrunat=serverasp:Buttonid=Button1CommandName=踢CommandArgument=足球Text=动作1runat=serverOnCommand=Button_Click/brasp:Buttonid=Button2CommandName=打CommandArgument=篮球Text=动作2runat=serverOnCommand=Button_Click/brhrasp:Labelid=Label1runat=server//form/body/html分析:1.两个程序用不同的方法完成相同的功能和效果。2.类CommandEventArgs有两个公共属性,CommandName(用来获取命令的名称)和CommandArgument(用来获取命令的参数)。二者相互关联。3.两个程序分别用OnClick与OnCommand激发事件,区别在于OnCommand是带值传递的。4.所有Button类的Web控件(如ImageButton,LinkButton)均含有CommandName和CommandArgument这两个属性。问题:上文中两个程序采用的参数CommandEventArgs,EventArgs有什么区别?为什么在第一个程序中使用EventArgs,而不能使用CommandEventArgs(已经验证,出现“Button_Click”的重载均与委托“System.EventHandler”不匹配)?例子:解决:在网上查资料得到的结果:这类问题出现的原因就是在控件的一些事件里面调用了函数,而这些函数的参数与该事件所要用到的参数类型不一致。在MSDN中搜索OnPageIndexChanging、OnPageIndexChanged等关键字就可以得到:C#protectedvirtualvoidOnPageIndexChanged(EventArgse)C#protectedvirtualvoidOnPageIndexChanging(DetailsViewPageEventArgse)C#protectedvirtualvoidOnRowDeleting(GridViewDeleteEventArgse)C#protectedvirtualvoidOnRowDeleted(DataRowChangeEventArgse)这样,在何种事件中使用什么样的参数类型就一目了然了。还有后面的OnRowDeleted、OnRowDeleting也是同样的道理。相应事件:publicvoidMyList_Page(objectsender,GridViewPageEventArgse)publ

1 / 31
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功