私はオブジェクト指向プログラミングについてもっと学びたいと思っています。VB.NETオプションの入力でクラスを作成する
私は、この画像のようにコニカルオブジェクトを表すクラスを作成しようとしています。
A:接続口径 B:直径 C:身長
しかし、コーン
1を選ぶとき私のためにいくつかの違いがありますが)大きくなることになるだろうコーン接続ですあなたが拡大円錐を持っている直径よりも小さく円錐。このために、コンストラクタで設定されているEnumに基づいて読み取り専用のプロパティを作成しました。これは、円錐オブジェクトを作成中に設定され、修正されています。
2)どのように寸法を設定しますか?画像は3次元であるが、4つ目は角度である。高さが先頭の寸法の場合は角度を計算し、角度が先行寸法の場合は高さを計算する必要があります。また、このために、コンストラクタで設定されているEnumに基づいて読み取り専用のプロパティを作成しました。
しかし、私は自分のプロパティをどのようにマークする必要がありますか? 1つのケースでは、高さは読み取り専用で、もう1つは角度でなければなりません。このような状況にどうやって対処していますか?
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
AFAIKではなく、ReadOnlyと動的に切り替えることはできません。おそらく、ある条件が満たされていない場合に値を変更しないセッターを追加することができますか? –
これを解決する方法はたくさんあります。コンストラクタからのみ設定可能な値を持つことから、許可されている場合はプロパティを設定するメソッドがあり、同じConeインターフェイスを実装する2つの異なるConeクラスが実際にあります。あなたが実際にプロパティの異なる実装を望むことを考えれば、インターフェイスのアプローチIMOは、ラインを下げるのに役立つ可能性があります。 –
高さを変更したときの角度を計算し、角度を変更したときの高さを計算することはできますか?そうであれば、両方のプロパティを読み書き可能のままにしておくことができます。 – reduckted