3个回答
展开全部
结构是值类型,在分配内存的时候,速度非常快,因为他们将内联或者保存到堆栈中,在结构超出作用域被删除里,速度也很快。
但当结构作为参数被传递或者把一个结构赋值给另一个结构,结构的所有内容都会被复制,性能影响就会较大。而对于类,只复制引用。
http://msdn.microsoft.com/zh-cn/library/0taef578(VS.80).aspx
使用结构(C# 编程指南)
struct 类型适于表示 Point、Rectangle 和 Color 等轻量对象。尽管可以将一个点表示为类,但在某些情况下,使用结构更有效。例如,如果声明一个 1000 个 Point 对象组成的数组,为了引用每个对象,则需分配更多内存;这种情况下,使用结构可以节约资源。由于 .NET Framework 包含名为 Point 的对象,因此我们转而调用结构“CoOrds”。
public struct CoOrds
{
public int x, y;
public CoOrds(int p1, int p2)
{
x = p1;
y = p2;
}
}
声明结构的默认(无参数)构造函数是错误的。总是提供默认构造函数以将结构成员初始化为它们的默认值。在结构中初始化实例字段也是错误的。
如果使用 new 运算符创建结构对象,则会创建该结构对象,并调用适当的构造函数。与类不同,结构的实例化可以不使用 new 运算符。如果不使用 new,则在初始化所有字段之前,字段都保持未赋值状态且对象不可用。
对于结构,不像类那样存在继承。一个结构不能从另一个结构或类继承,而且不能作为一个类的基。但是,结构从基类 Object 继承。结构可实现接口,其方式同类完全一样。
与 C++ 不同,无法使用 struct 关键字声明类。在 C# 中,类与结构在语义上是不同的。结构是值类型,而类是引用类型。有关更多信息,请参见值类型。
除非需要引用类型语义,否则系统将较小的类作为结构处理效率会更高。
但当结构作为参数被传递或者把一个结构赋值给另一个结构,结构的所有内容都会被复制,性能影响就会较大。而对于类,只复制引用。
http://msdn.microsoft.com/zh-cn/library/0taef578(VS.80).aspx
使用结构(C# 编程指南)
struct 类型适于表示 Point、Rectangle 和 Color 等轻量对象。尽管可以将一个点表示为类,但在某些情况下,使用结构更有效。例如,如果声明一个 1000 个 Point 对象组成的数组,为了引用每个对象,则需分配更多内存;这种情况下,使用结构可以节约资源。由于 .NET Framework 包含名为 Point 的对象,因此我们转而调用结构“CoOrds”。
public struct CoOrds
{
public int x, y;
public CoOrds(int p1, int p2)
{
x = p1;
y = p2;
}
}
声明结构的默认(无参数)构造函数是错误的。总是提供默认构造函数以将结构成员初始化为它们的默认值。在结构中初始化实例字段也是错误的。
如果使用 new 运算符创建结构对象,则会创建该结构对象,并调用适当的构造函数。与类不同,结构的实例化可以不使用 new 运算符。如果不使用 new,则在初始化所有字段之前,字段都保持未赋值状态且对象不可用。
对于结构,不像类那样存在继承。一个结构不能从另一个结构或类继承,而且不能作为一个类的基。但是,结构从基类 Object 继承。结构可实现接口,其方式同类完全一样。
与 C++ 不同,无法使用 struct 关键字声明类。在 C# 中,类与结构在语义上是不同的。结构是值类型,而类是引用类型。有关更多信息,请参见值类型。
除非需要引用类型语义,否则系统将较小的类作为结构处理效率会更高。
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
展开全部
枚举和结构体的应用都差不多.
通常都是定义一个结构体或枚举,然后再用其定义成一个数组,
举例,有人做字库时有结构体,
里面包括一个unsigned int用于存汉字代码,
一个unsigned char[32]用于存点阵.
然后用该结构定义一个数组,
然后查询数组里unsigned int是否对应汉字,如果对应,则unsigned char[32]为该汉字的点阵,
这通常应用于LCD汉字显示.
总的一句话,就是方便数据归类,
如果学过C++,其实就有点类似C++的类,
当然,这比类要弱很多很多.
通常都是定义一个结构体或枚举,然后再用其定义成一个数组,
举例,有人做字库时有结构体,
里面包括一个unsigned int用于存汉字代码,
一个unsigned char[32]用于存点阵.
然后用该结构定义一个数组,
然后查询数组里unsigned int是否对应汉字,如果对应,则unsigned char[32]为该汉字的点阵,
这通常应用于LCD汉字显示.
总的一句话,就是方便数据归类,
如果学过C++,其实就有点类似C++的类,
当然,这比类要弱很多很多.
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
结构体比较轻量级,在传输数据的时候是copy数据,而不是如类一样给引用,所以不需要担心资源释放。同时结构没有多态特性,所以在调用方法的时候性能会更好
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询