结构

王朝学院·作者佚名  2009-12-05  
宽屏版  字体: |||超大  

1,类保存在堆中,这种方式可以保证出具的数据在生存周期上的灵活性,性能虽然有一些损失,但由于托管堆的优化,损失是比较小的。

但有时我们仅需要一个比较小的数据结构,这时可以考虑使用结构

class windowForm

{

public int Left;

public int Right;

}

这样一类,只有两个存储项,只需要处理这两个变量。那么可以这样定义为结构

struct windowForm

{

public int Left;

public int Right;

windowForm(int left, int right)

{

this.Left = left;

this.Right = right;

}

public void set()

{

Console.WriteLine("Left:" + Left + " Right:" + Right);

}

}

这样具有构造函数的结构就可以免去定义在队中的麻烦和性能问题。

结构也可以定义属性等。

2,结构是值类型,存储在堆栈中或内联

如下: 两次Set方法处理的结构一样,并不能改变Left的值。

class Program

{

static void Main(string[] args)

{

windowForm win = new windowForm();

win.set();

Change(win);

win.set();

Console.Read();

}

static void Change(windowForm win)

{

win.Left = 1;

}

}

3,结构不能继承

4,结构的构造函数是由编译器提供的一个无参数构造函数,自己不能定义新的用来替换。

5,结构主要用于较小的数据结构,过大会有性能损失。

6,结构在作为参数传递时用要用ref 关键字,否则每次都复制新的内容引起不必要的性能消耗。

7,一个结构赋值给另一个结构的时候,由于结构是非引用型所以每次都会进行全部复制,而类只是复制引用

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有