Welcome 微信登录

首页 / 软件开发 / C#

C#以动画方式显示图像

C#以动画方式显示图像

C#以动画方式显示图像2010-12-03PPT 以动画方式显示幻灯片是其一个很重要的特点,相信里边一定有您喜欢的动画方式,今天我就带大家认识几款以动画方式显示幻灯片的制作方法,由于是GDI+, 这里以图像代替幻灯片(其实原理是相通的)来演示如何制作以动画方式显示图像。说明: 由于是以动画方式显示图像, 这里没办法直接贴静态截图, 因此决定给园友开源, 将所有的可运行代码附在案例后面, 由于所有的动画处理图像的对象放在都pictureBox控件中, 同时定...
C#使用UDP Client编写聊天程序

C#使用UDP Client编写聊天程序

C#使用UDP Client编写聊天程序2010-12-03UDPClient 类使用 UDP 与网络服务通讯。UDP 的优点是简单易用,并且能够同时向多个地址广播消息。但由于 UDP 协议是一个无连接协议,因此发送到远程终结点的 UDP 数据文报不一定能够到达,也不一定能够以发送的相同顺序到达。使用 UDP 的应用程序必须准备处理丢失的和顺序有误的数据文报。若要使用 UDP 发送数据文报,必须知道承载所需服务的网络设备的网络地址以及该服务用于通讯的 UD...
c# 2.0下简单的FTP应用程序

c# 2.0下简单的FTP应用程序

c# 2.0下简单的FTP应用程序2010-12-09Neo Matrix介绍微软的.net framework 2.0相对于1.x来说增加了对FTP的支持。以前为了符 合我的需求,我不等不使用第三方类库来实现FTP功能,但是为了可靠,还是使 用.net framework的类比较好。我的这段代码没有做成可重复使用的类库的形式 ,但它却是比较容易理解的并能满足你的需求。它可以实现上传,下载,删除等 任意功能。在这篇文章的后面将给大家出示.net 2.0下实...
Effective C#原则1:尽可能的使用属性(property),而不是数据成员(field)

Effective C#原则1:尽可能的使用属性(property),而不是数据成员(field)

Effective C#原则1:尽可能的使用属性(property),而不是数据成员(field)2010-12-09 博客园 Wu.Country@侠缘译我们的目标:尽可能编写出运行效率更高,更健壮,更容易维护的C#代码。原则一:尽可能的使用属性(property),而不是数据成员(field)。Always use properties instead of accessible data members.出于以下几点原因,请在设计类时,尽可能的使用属...
Effective C#原则2:为你的常量选择readonly而不是const

Effective C#原则2:为你的常量选择readonly而不是const

Effective C#原则2:为你的常量选择readonly而不是const2010-12-09 博客园 Wu.Country@侠缘译对于常量,C#里有两个不同的版本:运行时常量和编译时常量。因为 他们有不同的表现行为,所以当你使用不当时,将会损伤程序性能或者出现错误 。两害相权取其轻,当我们不得不选择一个的时候,我们宁可选择一个 运行慢一点但正确的那一个,而不是运行快一点但有错误的那个。基于这个理由 ,你应该选择运行时常量而不是编译时常量(译注:这里隐...
Effective C#原则3:选择is或者as操作符而不是做强制类型转换

Effective C#原则3:选择is或者as操作符而不是做强制类型转换

Effective C#原则3:选择is或者as操作符而不是做强制类型转换2010-12-09 博客园 Wu.Country@侠缘译C#是一个强数据类型语言。好的实践意味着当可以避免从一种数据类型 强制转化为另种数据类型时,我们应该尽我们的所能来避免它。但在某些时候, 运行时类型检测是不可避免的。在C#里,大多数时候你要为调用函数的参数使用 System.Object类型,因为Framwork已经为我们定义了函数的原型。你很可能要 试图把那些类型进行向下转...
Effective C#原则4:用条件属性而不是#if预编译块

Effective C#原则4:用条件属性而不是#if预编译块

Effective C#原则4:用条件属性而不是#if预编译块2010-12-09 博客园 Wu.Country@侠缘译使用#if/#endif 块可以在同样源码上生成不同的编译(结果),大多数debug 和release两个版本。但它们决不是我们喜欢用的工具。由于#if/#endif很容易 被滥用,使得编写的代码难于理解且更难于调试。程序语言设计者有责任提供更 好的工具,用于生成在不同运行环境下的机器代码。C#就提供了条件属性 (Conditional ...
Effective C#原则5:始终提供ToString()

Effective C#原则5:始终提供ToString()

Effective C#原则5:始终提供ToString()2010-12-09 博客园 Wu.Country@侠缘译在.Net世界里,用得最多的方法之一就是System.Object.ToStrying()了。你 应该为你所有的客户写一个“通情达理”的类(译注:这里是指这个 类应该对用户友好)。要么,你就迫使所用类的用户,去使用类的属性并添加一 些合理的易读的说明。这个以字符串形式存在,关于你设计的类的说明,可以很 容易的向你的用...
Effective C#原则6:区别值类型数据和引用类型数据

Effective C#原则6:区别值类型数据和引用类型数据

Effective C#原则6:区别值类型数据和引用类型数据2010-12-09 博客园 Wu.Country@侠缘译值类型数据还是引用类型数据?结构还是类?什么你须要使用它们呢?这不 是C++,你可以把所有类型都定义为值类型,并为它们做一个引用。这也不是 Java,所有的类型都是值类型。你在创建每个类型实例时,你必须决定它们以什 么样的形式存在。这是一个为了取得正确结果,必须在一开始就要面对的重要决 定。(一但做也决定)你就必须一直面对这个决定给你带来的...
Effective C#原则7: 选择恒定的原子值类型数据

Effective C#原则7: 选择恒定的原子值类型数据

Effective C#原则7: 选择恒定的原子值类型数据2010-12-09 博客园 Wu.Country@侠缘译恒定类型(immutable types)其实很简单,就是一但它们被创建,它们(的值) 就是固定的。如果你验证一些准备用于创建一个对象的参数,你知道它在验证状 态从前面的观点上看。你不能修改一个对象的内部状态使之成为无效的。在一个 对象被创建后,你必须自己小心翼翼的保护对象,否则你不得不做错误验证来禁 止改变任何状态。恒定类型天生就具有线程完...
Effective C#原则8:确保0对于值类型数据是有效的

Effective C#原则8:确保0对于值类型数据是有效的

Effective C#原则8:确保0对于值类型数据是有效的2010-12-09 博客园 Wu.Country@侠缘译.Net系统默认所有的对象初始化时都为0。这并没有提供一个方法来预防其他 程序员创建的值类型数据的实例在初始化是都是0。请让你的数据类型默认值也 是0。一个特殊情况是在枚举类型数据中。决不要创建一个不包括0在内 的枚举类型。所有的枚举类型都是从System.ValueType派生的。枚举类型的值是 从0开始的,但你可以改变这一行为:publ...
Effective C#原则9:明白几个相等运算之间的关系

Effective C#原则9:明白几个相等运算之间的关系

Effective C#原则9:明白几个相等运算之间的关系2010-12-09 博客园 Wu.Country@侠缘译明白ReferenceEquals(), static Equals(), instance Equals(), 和运算行 符==之间的关系。当你创建你自己的类型时(不管是类还是结构),你要 定义类型在什么情况下是相等的。C#提供了4个不同的方法来断定两个对象是否 是相等的:public static bool ReferenceEquals...
Effective C#原则10:明白GetHashCode()的缺陷

Effective C#原则10:明白GetHashCode()的缺陷

Effective C#原则10:明白GetHashCode()的缺陷2010-12-09 博客园 Wu.Country@侠缘译这是本书中唯一一个被一整个函数占用的原则,你应该避免写这样的函数。 GetHashCode()仅在一种情况下使用:那就是对象被用于基于散列的集合的关键 词,如经典的HashTable或者Dictionary容器。这很不错,由于在基类上实现的 GetHashCode()存在大量的问题。对于引用类型,它可以工作,但高效不高;对 于值类...
Effective C#原则11:选择foreach循环

Effective C#原则11:选择foreach循环

Effective C#原则11:选择foreach循环2010-12-09 博客园 Wu.Country@侠缘译C#的foreach语句是从do,while,或者for循环语句变化而来的,它相对要好 一些,它可以为你的任何集合产生最好的迭代代码。它的定义依懒于.Net框架里 的集合接口,并且编译器会为实际的集合生成最好的代码。当你在集合上做迭代 时,可用使用foreach来取代其它的循环结构。检查下面的三个循环:int [] foo = new int[...
Effective C#第二章:.Net资源管理

Effective C#第二章:.Net资源管理

Effective C#第二章:.Net资源管理2010-12-09 博客园 Wu.Country@侠缘译一个简单的事实:.Net应用程序是在一个托管的环境里运行的,这个环境和 不同的设计器有很大的冲突,这就才有了Effective C#。极大限度上的讨论这个 环境的好处,须要把你对本地化环境的想法改变为.Net CLR。也就意味着要明白 .Net的垃圾回收器。在你明白这一章里所推荐的内容时,有必要对.Net的内存管 理环境有个大概的了解。那我们就开始大概...
Effective C#原则12:选择变量初始化而不是赋值语句

Effective C#原则12:选择变量初始化而不是赋值语句

Effective C#原则12:选择变量初始化而不是赋值语句2010-12-09 博客园 Wu.Country@侠缘译(译注:根据我个人对文章的理解,我把initializer译为:初始化器,它是 指初始化语法,也就是在一个类里声明变量的同时,直接创建实例值的方法。例:object m_o = new object();如果这段代码不在任何函数内,但在 一个类里,它就是一个初始化器,而不管你是把它放在类的开始还以结尾。)一些类经常不只一个构造函数。时间一...
Effective C#原则13:用静态构造函数初始化类的静态成员

Effective C#原则13:用静态构造函数初始化类的静态成员

Effective C#原则13:用静态构造函数初始化类的静态成员2010-12-09 博客园 Wu.Country@侠缘译(译注:initializer在上文中译为了“初始化器”,实在不好听 ,本文中全部改译为:“预置方法”)你应该知道,在一个类 型的任何实例初始化以前,你应该初始化它的静态成员变量。在里C#你可以使用 静态的预置方法和静态构造函数来实现这个目的。一个类的静态构造函数是一个 与众不同的,它在...
Effective C#原则14:使用构造函数链

Effective C#原则14:使用构造函数链

Effective C#原则14:使用构造函数链2010-12-09 博客园 Wu.Country@侠缘译写构造函数是一个反复的工作。很多人员都是先写一个构造函数,然后 复制粘贴到其它的构造函数里,以此来满足类的一些重载接口。希望你不是这样 做的,如果是的,就此停止吧。有经验的C++程序可能会用一个辅助的私有方法 ,把常用的算法放在里面来构造对象。也请停止吧。当你发现多重构造函数包含 相同的逻辑时,取而代之的是把这些逻辑放在一个常用的构造函数里。你可以得 ...
Effective C#原则15:使用using和try/finally来做资源清理

Effective C#原则15:使用using和try/finally来做资源清理

Effective C#原则15:使用using和try/finally来做资源清理2010-12-09 博客园 Wu.Country@侠缘译使用非托管资源的类型必须实现IDisposable接口的Dispose()方法来精确的 释放系统资源。.Net环境的这一规则使得释放资源代码的职责是类型的使用者, 而不是类型或系统。因此,任何时候你在使用一个有Dispose()方法的类型时, 你就有责任来调用Dispose()方法来释放资源。最好的方法来保证Disp...
<< 151 152 153 154 155 156 157 158 159 160 >>