gpt4 book ai didi

c# - 为什么 Font 是不可变的?

转载 作者:可可西里 更新时间:2023-11-01 08:14:00 25 4
gpt4 key购买 nike

字体不可变让程序员和 GC 都感到苦恼,因为您每次都需要创建一个新实例。

为什么 Font 是不可变的引用类型?

最佳答案

它简化了渲染系统的使用。

如果框架允许 Font 可变,则需要检测变化,并定期修改其呈现方式。由于 Font 创建了一个本地资源,保持这个不可变可以防止系统担心必须在内部重复地重新创建句柄。

此外,我不同意“程序员的苦恼”。通过使 Font 不可变,它使用户创建 Font 对象时发生的事情更加明显。如果你想要一个新的 Font,你需要创建一个新的 Font 对象,这又会创建新的原生字体资源。使 Font 不可变可以更清楚地了解正在发生的事情 - 您不太可能意外造成性能问题。

如果 Font 是可变的,那么您在更改 Font 属性时重复创建句柄就不太明显了。

关于c# - 为什么 Font 是不可变的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1561126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com