投稿者 mitchin  (社会人) 投稿日時 2009/9/22 07:26:42
一例として、自分なら SystemMonitor は名前空間にして Memory をクラスにします。
Namespace SystemMonitor
#Region " 列挙体 "
  ''' <summary>容量の単位です。</summary> 
  ''' <remarks></remarks> 
  Public Enum SizeUnit
    B
    KB
    MB
    GB
  End Enum
#End Region

  ''' <summary>メモリ関連の処理を行う静的メソッドを提供するクラスです。このクラスは継承できません。</summary> 
  ''' <remarks></remarks> 
  Public NotInheritable Class Memory
#Region " プライベートコンストラクタ "
    Private Sub New()
    End Sub
#End Region

#Region " パブリックメソッド "
    ''' <summary>指定した単位のメモリの容量を取得します。</summary> 
    ''' <param name="Unit">容量の単位を表す SizeUnit の値の 1 つ。</param> 
    ''' <returns>Unit で表されるメモリの容量。</returns> 
    ''' <remarks></remarks> 
    Public Shared Function GetMemorySize(ByVal Unit As SizeUnit) As Decimal
      Return Convert.ToDecimal(My.Computer.Info.TotalPhysicalMemory / (1024 ^ Unit))
    End Function
#End Region
  End Class
End Namespace


Label に表示する使用例
  Private Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles MyBase.Load
    Dim Unit As SystemMonitor.SizeUnit = SystemMonitor.SizeUnit.B
    Me.Label1.Text = String.Format("{0:N0}{1}", SystemMonitor.Memory.GetMemorySize(Unit), Unit)  '表示例:1,072,480,256B 
    Unit = SystemMonitor.SizeUnit.KB
    Me.Label2.Text = String.Format("{0:N0}{1}", SystemMonitor.Memory.GetMemorySize(Unit), Unit)  '表示例:1,047,344KB 
    Unit = SystemMonitor.SizeUnit.MB
    Me.Label3.Text = String.Format("{0:N0}{1}", SystemMonitor.Memory.GetMemorySize(Unit), Unit)  '表示例:1,023MB 
    Unit = SystemMonitor.SizeUnit.GB
    Me.Label4.Text = String.Format("{0:N2}{1}", SystemMonitor.Memory.GetMemorySize(Unit), Unit)  '表示例:1.00GB 
  End Sub


個人的には以下のクラスを作ってプログラムや自作DLLから利用しています。
○数値、文字列、日付等の処理を行う静的メソッドを提供するクラス
○判別処理を行う静的メソッドを提供するクラス
○ネットワーク関連の処理を行う静的メソッド・プロパティを提供するクラス
○データベースの処理を行う静的メソッド・プロパティを提供するクラス

これらはすべて静的(Shared)なメソッド・プロパティを提供するクラスなので、
クラスは Public NotInheritable にして、コンストラクタは Private にしています。