王牌9 优秀程序员之路——C# 开发经验及技巧大汇总.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:15 大小:264KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

王牌9 优秀程序员之路——C# 开发经验及技巧大汇总.pdf

王牌9优秀程序员之路——C#开发经验及技巧大汇总.pdf

预览

免费试读已结束,剩余 5 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

优秀程序员之路——C#开发经验及技巧大汇总王牌9优秀程序员之路——C#开发经验及技巧大汇总1.用接口代替类用于参数接口是诚实的,能做什么不能做什么一目了然,从来没有什么欺瞒。不像类,可能拥有其接口没有定义的方法或属性,而编程时则有效要避免用到这些方法和属性。在定义方法时,对于我们需要的对象参数,我们需要的只是它这个对象的功能或作用的说明,而接口洽洽就可以提供这些了。使用接口代替类用于参数,凡是实现这个接口的类都可以用作参数实例,显而易见接口拥有更大的灵活性。对于方法的返回值,如果要求返回的对象具有某个功能,而这个功能是在接口中声明的,则只需返回接口即可。原则是:参数的传入与传出要尽可能提高其抽象性、扩大其涵盖范围。2.P/Invoke是什么?在受控代码与非受控代码进行交互时会产生一个事务(transition),这通常发生在使用平台调用服务(PlatformInvocationServices),即P/Invoke如调用系统的API或与COM对象打交道,通过System.Runtime.InteropServices命名空间,虽然使用Interop非常方便,但据估计每次调用事务都要执行10到40条指令,算起来开销也不少,所以我们要尽量少调用事务,如果非用不可,建议本着一次调用执行多个动作,而不是多次调用每次只执行少量动作的原则。3.怎样从一个form传递数据到另一个form?假设Form2的数据要传到Form1的TextBox。在Form2://DefinedelegatepublicdelegatevoidSendData(objectsender);//CreateinstancepublicSendDatasendData;在Form2的按钮单击事件或其它事件代码中:if(sendData!=null){sendData(txtBoxAtForm2);}this.Close();//关闭Form2在Form1的弹出Form2的代码中:1C#从入门到精通Form2form2=newForm2();form2.sendData=newForm2.SendData(MyFunction);form2.ShowDialog();====================privatevoidMyFunction(objectsender){textBox1.Text=((TextBox)sender).Text;}4.强制类型转换与as类型转换的区别当类型转换非法时,强制类型转换将抛出一个System.InvalidCastException异常,而as不会抛出异常,它返回一个null值。5.怎样从Flash调用外部程序,如一个C#编译后生成的.exe?fscommand("exec","应用程序.exe");必须把flash发布为.exe必须在flash生成的.exe文件所在目录建一个名为fscommand的子目录,并把要调用的可执行程序拷贝到那里。6.使用用SqlConnection连接SQLServer//加入命名空间usingSystem.Data.SqlClient;//连接数据库SqlConnectionmyConnection=newSqlConnection();myConnection.ConnectionString="userid=sa;password=sinofindb;initialcatalog=test;datasource=127.0.0.1;ConnectTimeout=30";myConnection.Open();7.十进制数转成十六进制字符串intnum=123;stringstr=Convert.ToString(num,16);十六进制字符串转十进制数stringstr="7b";intnum=Convert.ToInt32(str,16);其它进制也是一样,只要把16改进2或8或10就可以了.8.关于泛型集合2优秀程序员之路——C#开发经验及技巧大汇总王牌9用Array,ArrayList,Dictionary等存储对象集合,面临的不只是拆装箱性能损耗的问题。从系统架构角度讲,所有对象对象都应该是强类型的。为了解决这个问题,从.Net2开始,便有了泛型。看如下代码:publicclassMobile{privateArrayListfriends=newArrayList();//这里用ArrayList便不足取publicvoidAdd(IFriendf){friends.A