gpt4 book ai didi

c# - 处理需要自动值的值类型的最佳方式?

转载 作者:太空宇宙 更新时间:2023-11-03 11:39:25 25 4
gpt4 key购买 nike

为值类型支持“auto”值的最佳方式是什么?

假设我想将纹理 float 到离屏幕右侧 5 个单位的位置。我希望最终开发人员像这样设置值:

mytexture.Margin.Right = 5;
mytexture.Margin.Left = int.Auto;

在内部,我的“布局管理器”需要知道定位的最终结果,但要维护它是一个自动属性以供将来比较和使用。

到目前为止,我一直在通过一种新的值类型来实现这一点,该类型处理所有可能的转换,但有一个额外的字段来声明它是否代表一个自动设置的值。

这是正确的吗?或者有更好的方法来处理这个问题吗?我的代码目前结束为:

mytexture.Margin.Right = 5;
mytexture.Margin.Left = Size.Auto;

最佳答案

您也可以在 WPF 中可用的 GridLength 类型之后对其进行建模。

他们基本上制作了一个结构,具有 double 值(除其他外)。他们添加了隐式转换运算符,因此很容易从代码中使用:

RowDefinition row = new RowDefinition();
row.Height = 25; //Same as new GridLength(25);
row.Height = GridLength.Auto;

我敢肯定他们会专门检查引擎盖下的静态成员 GridLength.Auto 来完成这项工作。

MSDN for GridLength

关于c# - 处理需要自动值的值类型的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5154386/

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