gpt4 book ai didi

.net - 为非常量类型的属性设置默认值?

转载 作者:行者123 更新时间:2023-12-01 12:01:37 26 4
gpt4 key购买 nike

我有一个 Windows.Forms 组件,它有一个返回 Size 结构的“mySize”属性。我的意图是让这个属性根据组件的大小自动计算返回的 mySize,除非 mySize 已经明确设置,在这种情况下,返回 mySize 的设置值。不幸的是,既然我要将组件嵌入到窗体中,Windows 窗体设计器已决定开始显式生成并设置 mySize 属性的值,这让我很不爽。

所以我需要设置一个默认值,这样设计师就会离开,让我一个人呆着。

我已经阅读了关于处理 System.ComponentModel.DefaultValue 的答案,所以我知道我必须在构造函数中手动设置属性的值,但是我找到的答案和文档只涉及将 DefaultValue 设置为False,一个常量。

Size 结构不是常量,所以 VB 编译器吓坏了,告诉我不能将 Size 设置为 Size 类型属性的默认值,因为 Sizes 不是常量。

这让我的脑袋很痛。

我可能可以通过编写 getMySize 和 setMySize 方法而不是使用属性来解决这个问题,但我想知道是否真的有任何方法可以设置 Size 的默认属性。

注意:我没有将 mySize 用作覆盖 Size 属性的某种疯狂尝试(它的默认值是 150x150,因此似乎可以为 Sizes 设置默认值); mySize 只是类所需的一些 Size 值。

最佳答案

不应用 DefaultValue 属性,而是编写以下两个方法:

bool ShouldSerializemySize() { ... }
void ResetmySize() { ... }

在 ShouldSerializemySize 中,如果值应该序列化为代码,则返回 true。在 ResetmySize 中,将属性重置为其默认值。

组件设计者将通过反射自动获取这些方法。

更多信息在这里: http://msdn.microsoft.com/en-us/library/53b8022e(VS.71).aspx

关于.net - 为非常量类型的属性设置默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/810726/

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