3
|
Bastien Vandamme · 技术社区 · 15 年前 |
1
9
微软试图遵循一些规则,它们在msdn中很好地解释了这些规则,请参见 Choosing Between Classes and Structures ( The book 更好,因为它有很多有趣的评论) 即使这一点不是一个很好的例子:
正如我所说,我猜他们不尊重“不变的”部分的事实,是因为在编写系统时没有规则。绘图和图形操作的速度可能对这一点非常敏感。 我不知道他们是否正确,也许他们测量了一些常见的算法,发现他们在分配临时对象和复制临时对象时损失了太多的性能。无论如何,只有在仔细测量类/struc的实际使用情况之后,才能进行此类优化。 |
2
2
这是一个 Structure . 就像日期时间。结构是价值类型。 |
3
2
这样做的原因几乎可以肯定,System.Drawing.Point(和PointF)类型用于通过.NET GDI(+)包装器进行绘制,这需要进行编组。整理值类型(即结构),以便本机库可以使用它们,比整理堆分配的对象(即类)要快。 从MSDN( Performance Considerations for Run-Time Technologies in the .NET Framework ):
|
4
0
嗯,我不知道微软的具体原因,但这是有道理的。它是一个固定大小的结构,包含少量不变的数据。我宁愿在堆栈上分配这样一个东西,在那里它易于分配和释放。把它变成一个类并放到堆中意味着它必须由GC管理,这会为这样一个微不足道的事情产生大量的开销。 |
5
0
在C,
|
Terio · Typescript:使用变量的值创建自定义类型 1 年前 |
Kareem Adel · 创建函数类型(TypeScript接口) 2 年前 |
MatÄj VondráÄek · 如何在c#方法中传递类型? 2 年前 |
kreo · 为什么&[T]参数也接受&Vec? 6 年前 |
Jiji · 将简单对象强制转换为简单的通用接口 6 年前 |