出来るのだASP Q&A掲示板(過去LOG)  訪問数 52046 昨日 889 今日 776
    【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。
Topに戻る 掲示板に戻る 検索 削除 管理者

[5003] Re:ASPで継承
投稿者:暇人さん 2005/04/20 16:09:13
暇人です
年度末処理→年度始処理→引継ぎ→新人研修(指導員)→飲み会→新年度トラブル対応→通常業務
のKOコンボからやっと抜け出ました
とても遅くなりましたが。
私が考えたインターフェース継承みたいな何かをのせときます。

インターフェース部はクラス1、関数1で成り立っています

Class interface
Public method(0)
Public property(0)
Sub Class_Initialize()
method(0) = "method,2"
property(0) = "property"
End Sub
End Class
'補足説明:method(0) = "medhod,2" はメソッド名:methodの引数が2つあるということです。
'メソッドを増やしたければ配列を大きくして、"method2,0"という様に追加していってください。プロパティも同じですが引数の設定がない分簡潔です。
'仕様上メソッド名に,は使用できません。エラーします。
'クラス名は好きな名前に変更してください。

function Ride(a,b)
Ride = ""
Dim subClass
Dim superClass
Execute("Set superClass = New " & a)
Execute("Set subClass = New " & b)
Dim c
Dim d
Dim ck
Dim msg
Dim dummy
ck = 0
On Error Resume Next
Err.Clear
For Each c In superClass.property
Eval("msg = subClass." & c)
If Err.Number <> 0 then
msg = msg & "プロパティ:" & c & "がオーバーロードされていません。"
Err.Clear
End If
Next
For Each c In superClass.method
d = Split(c,",")
dummy = "msg = subClass." & d(0) & "("
if d(1) <> "0" Then
For i = 1 to CLng(d(1))
dummy = dummy & "null,"
Next
dummy = Left(dummy, Len(dummy) - 1)
end if
dummy = dummy & ")"
msgbox(dummy)
Eval(dummy)
If Err.Number <> 0 then
msg = msg & "メソッド:" & d(0) & "がオーバーロードされていません。"
Err.Clear
End If
Next
On Error Goto 0
Ride = msg
end function
'補足説明:関数名は自由に変更してください。

長くなりましたのでここまでで一旦送信します。

ASPで継承   kenさん [2005/03/22 17:13:29] [4962]
  Re:ASPで継承   暇人さん [2005/03/22 17:29:35] [4963]
    Re:ASPで継承   kenさん [2005/03/22 18:39:14] [4964]
      Re:ASPで継承   暇人さん [2005/03/24 12:29:25] [4967]
        Re:ASPで継承   kenさん [2005/03/24 13:43:25] [4968]
          Re:ASPで継承   暇人さん [2005/04/20 16:09:13] [5003]
            Re:ASPで継承   暇人さん [2005/04/20 16:26:48] [5004]


TreeBBS For ASP V.0.1.3
Program By YasNet