博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 19 下一页

2011年4月2日

摘要: 最近在为Tokyo Tyrant写一个.NET客户端类库。Tokyo Tyrant公开了一个基于TCP协议的二进制协议,于是我们的工作其实也只是按照协议发送和读取一些二进制数据流而已,并不麻烦。不过在其中涉及到了“字节序”的概念,这本是计算机体系结构/操作系统等课程的基础,不过我还是打算在这里进行简单说明,并且对.NET中部分类库在此类数据流处理时的注意事项进行些许记录与总结。字节序(Byte Order)说到程序间的通信,说到底便是发送数据流。我们一般把字节(byte)看作是数据的最小单位。当然,其实一个字节中还包含8个比特(bit)──有时候我奇怪为什么很多朋友会不知道bit或是它和byt 阅读全文

posted @ 2011-04-02 19:05 steve.z 阅读(453) 评论(0) 推荐(0)

摘要: string类型转成byte[]:byte[] byteArray = System.Text.Encoding.Default.GetBytes ( str );反过来,byte[]转成string:string str = System.Text.Encoding.Default.GetString ( byteArray );其它编码方式的,如System.Text.UTF8Encoding,System.Text.UnicodeEncoding class等;例如:string类型转成ASCII byte[]:("01"转成byte[] = new byte[]{ 阅读全文

posted @ 2011-04-02 19:02 steve.z 阅读(347) 评论(0) 推荐(0)

摘要: 几年前MSDN上的一篇文章《Ten Must-Have Tools Every Developer Should Download Now》中介绍了.NET开发中必备的十大工具,几年过去之后,.NET Framework发展到了3.5版本,这些工具中,有些已经转向商业化,有些因为推出了新的工具而已经停止了开发,有些则继续免费提供给开发者使用。 笔者对.NET开发中必备的十大工具重新做了整理,推出新版.NET开发必备十大工具。本文只是简单的对其进行介绍,更加详细的用法我将会陆续进行讲解。Snippet Compiler Snippet Compiler是一个基于 Windows 的小型应用程序, 阅读全文

posted @ 2011-04-02 09:04 steve.z 阅读(1020) 评论(0) 推荐(1)

2011年4月1日

摘要: 组件类与普通类的区别http://blog.csdn.net/CYSONG168/archive/2010/07/24/5761906.aspxComponent,Container,IServceContainer,ISite 使用初探http://blog.csdn.net/daizhj/archive/2006/12/20/4614265.aspx类,组件、控件http://msdn.microsoft.com/zh-cn/library/0b1dk63b(v=VS.90).aspx 阅读全文

posted @ 2011-04-01 17:56 steve.z 阅读(193) 评论(0) 推荐(0)

2011年3月31日

摘要: Visual Studio 2008更新:2007 年 11 月使用“项目设计器”的“生成”页可以指定项目的生成配置属性。此页仅适用于 Visual C# 项目。说明:以下说明中的某些 Visual Studio 用户界面元素在计算机上出现的名称或位置可能会不同。您具有的 Visual Studio 版本以及使用的活动设置决定了这些元素。此主题是基于已选择“常规开发”设置的假设而编写的。若要查看或更改设置,请在“工具”菜单上选择“导入和导出设置”。有关更多信息,请参见 Visual Studio 设置。有关更多信息,请参见Visual Studio 设置。配置和平台通过以下选项可以选择要显示或 阅读全文

posted @ 2011-03-31 17:40 steve.z 阅读(2560) 评论(0) 推荐(0)

2011年3月30日

摘要: 内存溢出通俗理解就是内存不够,通常在运行大型软件或游戏时,软件或游戏所需要的内存远远超出了你主机内安装的内存所承受大小,就叫内存溢出。此时软件或游戏就运行不了,系统会提示内存溢出,有时候会自动关闭软件,重启电脑或者软件后释放掉一部分内存又可以正常运行该软件或游戏一段时间。为了便于理解,我们不妨打个比方。缓冲区溢出好比是将十磅的糖放进一个只能装五磅的容器里。一旦该容器放满了,余下的部分就溢出在柜台和地板上,弄得一团糟。由于计算机程序的编写者写了一些编码,但是这些编码没有对目的区域或缓冲区——五磅的容器——做适当的检查,看它们是否够大,能否完全装入新的内容——十磅的糖,结果可能造成缓冲区溢出的产生 阅读全文

posted @ 2011-03-30 15:25 steve.z 阅读(5824) 评论(0) 推荐(2)

2011年3月28日

摘要: GDI+由.NET基类集组成,这些基类可用于在屏幕上完成定制绘图,能把合适的指令发送到图形设备的驱动程序上,确保在监视器屏幕上显示正确的输出(或打印到硬拷贝中)。一、理解绘图规则1、 GDI和GDI+一般来说,Windows的一个优点(实际上是现代操作系统的一个优点)是它可以让开发人员不考虑特定设备的细节,例如:不需要理解硬盘设备驱动程序,只需在相关的.NET类中调用合适的方法(以前是等价的Windows API 函数),就可以编程读写磁盘上的文件。这些规则也适用于绘图,计算机在屏幕绘图时,把指令发送给视频卡,问题是市面上有几百种不同的视频卡,大多数有不同的指令集和功能,如果把这个考虑在内,在 阅读全文

posted @ 2011-03-28 21:31 steve.z 阅读(409) 评论(0) 推荐(0)

摘要: 软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分摸块的一个准则就是高内聚低耦合。 耦合度(Coupling)是对模块间关联程度的度量。耦合的强弱取决与模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。 模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差。 降低模块间的耦合度能减少模块间的影响,防... 阅读全文

posted @ 2011-03-28 20:33 steve.z 阅读(2080) 评论(0) 推荐(0)

摘要: 实际上还是父类分配父类的内存空间,子类分配子类的内存空间。[子类只分配自己特有的成员的内存,其他的使用父类的],最终合并到了一起,这里只是这么理解。通过this.age和base.age使用同一个内存地址也可以看出,这种理论也可以解释为什么构造函数不能被继承,只能子类来调用父类的构造函数。因为父类构造函数是要用来为父类分配内存空间,子类“调用”而非“继承”父类构造函数。然后在调用自己的构造函数。 如果子类重写父类的方法时,通过虚方法表来寻找子类的实现。在实例化子类对象时,是先构造父类的内存块,然后再构造子类的(子类相对于父类扩展了的那些)。编译器的调用过程是先调用基类的构造函数,对派生类中的基 阅读全文

posted @ 2011-03-28 14:16 steve.z 阅读(373) 评论(0) 推荐(0)

摘要: “类型安全” “静态类型安全”,在编译时检查类型是否一致。 “动态类型安全”,.net4.0里的dynamic类型,在运行时,会提前获得dynamic类型实际的类型。(异常不知道算不算?) string[] s = new string[10]; for (int i = 0; i < 100; i++) { Console.WriteLine(s[i]); } 对任何引用的对象进行操作,CLR都知道此对象是何种类型的; CLR在对一个引用对象进行操作时,它先会检查此引用的类型, 查看本次操作是否有效;若无效,编译将不能通过。 从另一个方面来说, “C#是类型安全的”指的是: CLR在程 阅读全文

posted @ 2011-03-28 11:24 steve.z 阅读(1265) 评论(0) 推荐(0)

上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 19 下一页