Visual Basic .NET または Visual Basic 2005 でのプロパティの定義および使用方法

文書翻訳 文書翻訳
文書番号: 308230 - 対象製品
この記事は、以前は次の ID で公開されていました: JP308230
Microsoft Visual C# .NET については、次の資料を参照してください。319265
すべて展開する | すべて折りたたむ

目次

概要

多くのオブジェクト指向プログラミング言語では、クラスに内部的な詳細をカプセル化できるようにすることが重要な目的の 1 つです。Visual Basic .NET または Visual Basic 2005 では、プロパティを定義することによって、クラスの内部的な詳細への制御されたアクセスを提供することができます。この資料では、Visual Basic .NET アプリケーションまたは Visual Basic 2005 アプリケーションにおいてプロパティを定義し、使用する方法について説明します。

プロパティは、読み取り専用、書き込み専用、または読み書き可能に設定できます。Get アクセサは読み取りアクセスを提供し、Set アクセサは書き込みアクセスを提供します。これらのアクセサにコードを追加して、プロパティを取得または設定するための適切な機能を提供することができます。

この資料では、Employee という名前のクラスを作成します。このクラスの中に、従業員の名前を表す読み書き可能なプロパティ、従業員の給料を読み取るためのプロパティ、および従業員の勤続日数を計算するプロパティを定義します。その後、アプリケーションの中に Employee オブジェクトを作成し、そのプロパティを使用します。

必要条件

必要なハードウェア、ソフトウェア、ネットワーク インフラストラクチャ、および Service Pack は次のとおりです。
  • Microsoft Visual Studio .NET または Microsoft Visual Studio 2005
この資料は、次のトピックについて詳しい知識のあるユーザーを対象としています。
  • Visual Basic .NET または Visual Basic 2005 の構文
  • オブジェクト指向の概念

Visual Basic .NET または Visual Basic 2005 のクラスを含むアプリケーションを作成する

  1. Visual Studio .NET または Visual Studio 2005 を起動し、EmployeeProperties という名前の新しい Visual Basic .NET または Visual Basic 2005 のコンソール アプリケーション プロジェクトを作成します。
  2. [プロジェクト] メニューの [クラスの追加] をクリックします。[新しい項目の追加] ダイアログ ボックスで、[ファイル名] ボックスに Employee.vb と入力し、[開く] をクリックします。

    : Visual Studio 2005 では、[開く] の代わりに [追加] をクリックします。
  3. コード ビュー ウィンドウで、新しいクラスのコードを確認します。

フィールド、コンストラクタ、メソッドを定義する

  1. Employee クラスに 3 つの Private フィールドを追加します。
    Private Name As String
    Private Salary As Decimal
    Private HireDate As DateTime
    					
  2. クラスのコンストラクタを次のように定義して、Employee クラスのフィールドが初期化されるようにします。
    Public Sub New(ByVal Name As String, _
                   ByVal Salary As Decimal, _
                   ByVal HireDate As DateTime)
       Me.Name = Name
       Me.Salary = Salary
       Me.HireDate = HireDate
    End Sub
    					
  3. クラスに以下のような Public メソッドを追加します。
    Public Sub PayRise(ByVal Amount As Decimal)
       Me.Salary += Amount
    End Sub
    					

クラス内のプロパティを定義する

  1. 以下のコードを追加して、FullName という名前の読み書き可能プロパティを追加します。Get アクセサは、従業員の名前を返します。Set アクセサは、Set アクセサに渡された Value パラメータを使用して従業員の名前を設定します。
    Public Property FullName() As String
       Get
          Return Me.Name
       End Get
       Set(ByVal Value As String)
          Me.Name = Value
       End Set
    End Property
    					
  2. 以下のコードを追加して、Remuneration という名前の読み取り専用プロパティを追加します。Get アクセサは従業員の給料を返します。給料を直接設定することはできないため、Set アクセサはありません。給料を変更するためには、PayRise メソッドを呼び出す必要があります。
    Public ReadOnly Property Remuneration() As Decimal
       Get
          Return Me.Salary
       End Get
    End Property
    					
  3. 以下のコードを追加して、DaysSinceJoined という名前の読み取り専用プロパティを追加します。Get アクセサは、従業員の勤続日数を計算します。
    Public ReadOnly Property DaysSinceJoined() As Integer
       Get
          Dim timespan As TimeSpan = DateTime.Now.Subtract(Me.HireDate)
          return timespan.Days
       End Get
    End Property
    					

オブジェクトを作成してプロパティを使用する

  1. [コード ビュー] ウィンドウで Module1.vb のコードを表示します。
  2. Main メソッドで、New 演算子を使用して Employee オブジェクトを作成します。以下のように、ローカルの Employee 変数へのオブジェクト参照を割り当てます。
    Dim worker As New Employee( "Jayne Doe", _
                                 125000, _
                                 New DateTime(1998, 7, 31) )
    					
  3. 以下のコードを追加して、従業員の FullName プロパティを変更します。これにより、FullName プロパティの Set アクセサが暗黙的に呼び出されます。
    worker.FullName = "Jayne Lafayette"
    					
  4. FullName、Remuneration、DaysSinceJoined の各プロパティの Get アクセサを使用して従業員の詳細情報を表示する、以下のコードを追加します。
    Console.WriteLine("Full name: " & worker.FullName)
    Console.WriteLine("Remuneration: " & worker.Remuneration)
    Console.WriteLine("Days since joined: " & worker.DaysSinceJoined)
    					

アプリケーションをテストする

  1. アプリケーションをビルドし、実行します。
  2. アプリケーションによってコンソール上に以下の情報が表示されます ("Days since joined" の値は、現在の日付によって異なります)。
    Full name: Jayne Lafayette
    Remuneration: 125000
    Days since joined: 1139
    						
  3. コード ウィンドウで Module1.vb ファイルに戻り、Main メソッドの末尾に以下のコードを追加します。
    worker.Remuneration = 1000000
    					
  4. アプリケーションのビルドを実行します。Remuneration は読み取り専用プロパティであるため、コンパイル エラーが表示されます。
  5. ステートメントを次のように変更します。
    worker.Salary = 1000000
    					
  6. アプリケーションのビルドを実行します。Salary フィールドは Private として指定されているため、再びコンパイル エラーが表示されます。従業員の給与を変更するには、Public メソッドの PayRise を使用する必要があります。

プロパティ

文書番号: 308230 - 最終更新日: 2006年10月3日 - リビジョン: 3.1
この資料は以下の製品について記述したものです。
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
キーワード:?
kbhowtomaster kbvs2005applies kbvs2005swept KB308230
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com