タイトル | : クラスの記述法 |
記事No | : 6245 |
投稿日 | : 2007/09/07(Fri) 10:45 |
投稿者 | : ダンボ |
クラスの記述法について質問です。 前提:AlbumDefクラスはBaseDefクラスを継承します。 下記2パターンの書き方ができます(並列記述とクラス内クラス)。
質問1.この2つの書き方の得失は何でしょうか? 質問2.継承先でMyBaseとMeの使い分けが分かりません。 下記どちらでも良いみたいなんですが、得失は何でしょうか? AlbumDefクラスで再定義した場合だけ差が出るのですか? MyBase.Modified(innerLastAccess) Me.Modified(innerLastAccess) 質問3.Option Strict Onなのに、 Public Overloads Function Modified(ByVal value As Boolean) As Boolean で、ワーニングもでない。Overloadsだからかな?
記述法1.並列記述 Option Strict On Public MustInherit Class BaseDef Private innerModified As Boolean Public Overloads Function Modified() As Boolean Modified = innerModified End Function Public Overloads Function Modified(ByVal value As Boolean) As Boolean innerModified = value End Function Public Overloads Sub Modified(ByRef AccessDate As Date) innerModified = True AccessDate = Now End Function End Class
Public Class AlbumDef Inherits BaseDef Private innerLastAccess As Date Public Sub Test() MyBase.Modified(innerLastAccess) Me.Modified(innerLastAccess) End Sub End Class
記述法2.クラス内クラス Option Strict On Public MustInherit Class BaseDef Private innerModified As Boolean Public Overloads Function Modified() As Boolean Modified = innerModified End Function Public Overloads Function Modified(ByVal value As Boolean) As Boolean innerModified = value End Function Public Overloads Sub Modified(ByRef AccessDate As Date) innerModified = True AccessDate = Now End Function
Public Class AlbumDef Inherits BaseDef Private innerLastAccess As Date Public Sub Test() MyBase.Modified(innerLastAccess) Me.Modified(innerLastAccess) End Sub End Class End Class
|