定数ファイルを作成する~その1~
定数ファイルを作成する~その2~
改良して、今はこんな感じで落ち着いてます。
定数アイテムリストの基底クラスです。
Namespace Constant Public MustInherit Class ConstItemBase '-----フィールド----- 'コード Private _iCd As Integer '名前 Private _sName As String '別名 Private _sAliasName As String '-----Publicプロパティ----- 'コードを取得します Public ReadOnly Property Cd() As Integer Get Return Me._iCd End Get End Property '名前を取得します Public ReadOnly Property Name() As String Get Return Me._sName End Get End Property '別名を取得します Public ReadOnly Property AliasName() As String Get Return Me._sAliasName End Get End Property '-----コンストラクタ----- '引数を取らないコンストラクタ Private Sub New() End Sub 'コードと名前を引数に取るコンストラクタ Public Sub New(ByVal cd As Integer, ByVal name As String) Me._iCd = cd Me._sName = name End Sub 'コードと名前と別名を引数に取るコンストラクタ Public Sub New(ByVal cd As Integer, ByVal name As String, ByVal aliasname As String) Me.New(cd, name) Me._sAliasName = aliasname End Sub End Class End Namespace
定数リストを検索するためのフィルタクラスです。
Namespace Constant Friend Class ConstItemFilter(Of TValue) '-----インスタンス変数----- '検索する値です Private _FilterValue As TValue '-----コンストラクタ----- 'コンストラクタ Public Sub New(ByVal filterValue As TValue) Me._FilterValue = filterValue End Sub '-----メソッド----- '引数に指定した定数アイテムのCDと検索値が一致するかを取得します。 Public Function IsMatchCd(ByVal item As ConstItemBase) As Boolean If (Me._FilterValue Is Nothing) Then Return False Return (Me._FilterValue.Equals(item.Cd)) End Function End Class End Namespace
曜日をあらわす定数アイテムリストです
Namespace Constant Public NotInheritable Class WeekDayKbn : Inherits ConstItemBase Private Shared _items As New List(Of WeekDayKbn) Public Shared ReadOnly Sun As New WeekDayKbn(1, "日曜日", "日") Public Shared ReadOnly Mon As New WeekDayKbn(2, "月曜日", "月") Public Shared ReadOnly Tue As New WeekDayKbn(3, "火曜日", "火") Public Shared ReadOnly Wed As New WeekDayKbn(4, "水曜日", "水") Public Shared ReadOnly Thr As New WeekDayKbn(5, "木曜日", "木") Public Shared ReadOnly Fri As New WeekDayKbn(6, "金曜日", "金") Public Shared ReadOnly Sat As New WeekDayKbn(7, "土曜日", "土") Private Sub New(ByVal cd As Integer, ByVal name As String, ByVal aliasname As String) MyBase.new(cd, name, aliasname) _items.Add(Me) End Sub Public Shared Function GetValues() As List(Of KinshuCd) Return _items End Function Public Shared Function GetItem(ByVal cd As Integer) As KinshuCd Dim filter As New ConstItemFilter(Of Integer)(cd) Return _items.Find(AddressOf filter.IsMatchCd) End Function End Class End Namespace
実際の使用方法
'月曜日の別名をラベルに表示 Me.Label1.Text = Constant.WeekDayKbn.Mon.AliasName '曜日コード1に該当する曜日名をラベルに表示 Me.Label1.Text = Constant.WeekDayKbn.GetItem(1).Name 'コンボボックスのデータソースに設定 Me.ComboBox1.ValueMember = "Cd" Me.ComboBox1.DisplayMember = "Name" Me.ComboBox1.DataSouce = Constant.WeekDayKbn.GetValues
1 件のコメント:
kuriboさん、こんばんは♪
突然ですが、bloggerに広告(Adsense以外)を載せたいときは、どうしたらいいでしょうか?
テンプレートからHTMLを編集するんでしょうか?
初コメントで、突然の質問で失礼かもしれないですが、いろいろ調べてもわからなくて。。。
コメントを投稿