当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 关于C#中的结构(下)

ASP.NET
asp.net下用服务器端代码解决浏览器兼容性问题
asp.net 安全的截取指定长度的html或者ubb字符串
asp.net 在线编辑word文档 可保存到服务器
asp.net 提高网站速度及如何利用缓存
asp.net 修改/删除站内目录操作后Session丢失问题
asp.net URL重写简化版 速学URL重写
asp.net EncryptHelper 加密帮助类
asp.net JSONHelper JSON帮助类
C# 调用存储过程简单完整的实例代码
vs2008 安装失败的总结与分享
HttpHandler HttpModule入门篇
ASP.NET(AJAX+JSON)实现对象调用
Asp.net 基于Cookie简易的权限判断
asp.net通过HttpModule自动在Url地址上添加参数
asp.net 字符串、二进制、编码数组转换函数
ASP.NET操作Excel备忘录
记录游客页面访问IP的简易实现代码 (asp.net+txt)
比较简单的将数据信息导入wrod文档方案(C# for word)
增加asp.net应用程序性能的20种方法(简单有效)
ASP.NET 图片防盗链的实现原理分析

ASP.NET 中的 关于C#中的结构(下)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 36 ::
收藏到网摘: n/a


上一篇就结构的性能、局限性以及它和类的比较作了简单的描述,这篇我将接着介绍在使用结构时应该注意和把握的原则:
通过上篇的介绍,我们可以很自然的意识到结构在效率上的优越性(相对于类),这主要归因于它们在底层的值类型结构。
不过,它们的对于大容量数据和复杂度高的算法进行处理时所表现出来的局限性,使得它的适用范围大受限制。那我们在什么情
况下使用结构才能不受指责和嘲笑呢?
1、如果你正在从事图像色彩或是固定模式的业务处理程序的设计,或者你在设计对象群时,需要面对大量结构简单且状态
信息比较少的对象时,我建议你最好选用结构类型来构造这些小规模数据体。
2、由于结构的原型是值类型,所以它整个被定义为一个数据,所以不要试图在结构里构造过多的方法,最好是能不定义方
法,就尽量避免。
我们来看以下微软提供的一个最具代表性的例子: RGB结构
using System;
///
/// RGB结构
///

struct RGB
{
public static readonly RGB RED = new RGB(255,0,0);
public static readonly RGB GREEN = new RGB(0,255,0);
public static readonly RGB BLUE = new RGB(0,0,255);
public static readonly RGB WHITE = new RGB(255,255,255);
public static readonly RGB BLACK = new RGB(0,0,0);
public int Red;
public int Green;
public int Blue;
public RGB(int red,int green,int blue)
{
Red = red;

Green = green;
Blue = blue;
}
public override string ToString()
{
return (Red.ToString("X2") + Green.ToString("X2") + Blue.ToString("X2"));
}
}
public class Struct
{
static void OutPutRGBValue(string color,RGB rgb)
{
Console.WriteLine("The Value for {0} is {1}",color,rgb);
}
static void Main(string[] args)
{
OutPutRGBValue("red",RGB.RED);
OutPutRGBValue("green",RGB.GREEN);
OutPutRGBValue("blue",RGB.BLUE);
OutPutRGBValue("white",RGB.WHITE);
OutPutRGBValue("black",RGB.BLACK);
}
}
以上的例子中我们定义了一个结构和静态字段,这样做使我们存储的效率提高了;使用上又方便了用户,毕竟记住一个
RGB(255,100,255) 要比记住一个“草浅兰” 要困难的多;由于静态成员的加盟,使得每个RGB键值对于整个系统只用定义一次,这样使用起来其高效性和方便性都是显而易见的。