调用结构属性、方法或公共字段的区别

 

C#中类和结构相似,但结构缺乏某些功能,eg:继承。结构是个值类型,因此创建结构要比创建类的速度要快。如果你有一些紧凑循环,需要在其中创建大量新数据结构,则应考虑使用结构而不是类。结构还用于封装数据字段组,例如网格上点的坐标或矩形的尺寸。

下面是两个结构:

public struct StructWithPublicMembers
{
public int X;
public int Y;

}
public struct StructWithProperties
{
private int _X;

public int X
{
get { return _X; }
set { _X = value; }
}
private int _Y;

public int Y
{
get { return _Y; }
set { _Y = value; }
}
}

 

下面是赋值:

StructWithProperties PropertiesStruct;
StructWithPublicMembers MembersStruct;
MembersStruct.X = 50;
MembersStruct.Y = 100;
PropertiesStruct.X = 50;
PropertiesStruct.Y = 100;
Console.Read();

可是编译出错:

分析:当调用结构的公共字段时,可以不使用new关键字来定义结构变量;当调用结构的属性或方法时,必须使用new关键字来定义结构变量。

解决:

StructWithProperties PropertiesStruct =new StructWithProperties();
StructWithPublicMembers MembersStruct;
MembersStruct.X = 50;
MembersStruct.Y = 100;
PropertiesStruct.X = 50;
PropertiesStruct.Y = 100;

 

posted @ 2014-10-07 20:37  疯狂的多多  阅读(303)  评论(0编辑  收藏  举报