gpt4 book ai didi

VB.NET 创建一个带有可选输入的类

转载 作者:行者123 更新时间:2023-12-01 03:33:49 25 4
gpt4 key购买 nike

我正在尝试了解有关面向对象编程的更多信息。

我正在尝试创建一个代表此图像中的锥形对象的类。

enter image description here

A : 连接直径
B:直径
C:高度

但对我来说,选择锥体时有一些差异

1)圆锥连接是否会大于直径,否则您有一个扩大圆锥,否则是一个缩小圆锥。为此,我基于在构造函数中设置的枚举创建了一个只读属性。这是在创建圆锥体对象时设置的并且是固定的。

2)你想如何标注它。图像有 3 个维度,但还有第四个维度是角度。如果高度是前导尺寸,则应计算角度,如果角度是前导尺寸,则应计算高度。同样为此,我基于在构造函数中设置的枚举创建了一个只读属性。

但是我应该如何标记我的属性?在一种情况下,高度应该是只读的,在另一种情况下是角度。你如何处理这样的情况?

Public Class Cone

Public ReadOnly Property ConeType As ConeTypeEnum

Public Enum ConeTypeEnum
kExpansion = 1
kReduction = 2
End Enum

Public ReadOnly Property DimensionType As DimensionTypeEnum

Public Enum DimensionTypeEnum
kAngle = 1
kHeight = 2
End Enum

Public Property Height As Double
Public Property Diameter As Double
Public Property ConnectionDiameter As Double
Public Property Angle As Double

Public Sub New(ByVal oConeType As ConeTypeEnum,
ByVal oDimensionType As DimensionTypeEnum)

ConeType = oConeType
DimensionType = oDimensionType

End Sub

End Class

最佳答案

这是我要做的:

从当前 A 动态确定圆锥类型属性和 B在只读属性中。这 - 据我了解 - 只是您拥有哪种锥型的指标。

所有其他属性都可以读/写,更新各自的其他属性。例如。如果用户改变角度,重新计算高度。如果用户改变高度,重新计算角度等。

如果你真的想设置锥体类型,我会在调用构造函数时这样做。然后更改其他属性,以便它们在 A 的情况下抛出异常和 B不适合当前的锥型。

另一种方法是定义一个接口(interface) ICone具有所有必需的属性并从中派生到类 ExpansionConeReductionCone相应地实现 getter/setter。

关于VB.NET 创建一个带有可选输入的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36305325/

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