佐々木屋

技術的なことから趣味まで色々書きます

電卓を作ろうの手引き⑪(継承を利用した方法①)

デリゲートで演算メソッドを定義していた演算クラスたちを継承による方法に変更します。
まず、抽象的な何もしないクラスを定義します。繰り返しになりますが、今回はこのクラスもインスタンスとして使いますので抽象クラスにはしません。

計算メソッドであるCalcメソッドは演算によって振る舞いが変わりますので、オーバーライド出来るように仮想メソッドにしておきます。

public class Calc_None {
    public string ErrorMessage { get; protected set; } = string.Empty;
    public decimal NumLeft { protected get; set; } = 0;
    public virtual decimal? calc(decimal numRight) {
        return numRight;
    }
}
Public Class Ope_None
    Private errNaiyo As String = String.Empty
    Public Property ErrorMessage() As String
        Get
            Return errNaiyo
        End Get
        Protected Set(value As String)
            errNaiyo = value
        End Set
    End Property

    Private num As Decimal = 0
    Public Property NumLeft() As Decimal
        Protected Get
            Return num
        End Get
        Set(value As Decimal)
            num = value
        End Set
    End Property

    Public Overridable Function Calc(ByVal numRight As Decimal) As Decimal?
        Return numRight
    End Function
End Class



あとは、このCalc_Noneクラスを四則演算クラスに派生させます。