次の方法で共有


方法: 構造体を宣言する (Visual Basic)

Structure ステートメントを使用して構造体宣言を開始し、End Structure ステートメントで終了します。 これら 2 つのステートメントの間で、少なくとも 1 つの 要素宣言する必要があります。 要素は任意のデータ型にすることができますが、少なくとも 1 つは非共有変数または非共有の非カスタム イベントである必要があります。

構造体宣言で構造体要素を初期化することはできません。 変数を構造体型として宣言する場合は、変数を使用して要素にアクセスして、要素に値を割り当てます。

構造体とクラスの違いの詳細については、「構造体とクラスの」を参照してください。

デモンストレーションの目的で、従業員の名前、内線番号、給与を追跡する必要がある状況を検討します。 構造体を使用すると、1 つの変数でこれを行うことができます。

構造体を宣言するには

  1. 構造体の開始ステートメントと終了ステートメントを作成します。

    構造のアクセス レベルは、パブリックProtectedFriend、または Private キーワードを使用して指定することも、既定で Publicにすることもできます。

    Private Structure employee  
    End Structure  
    
  2. 構造体の本体に要素を追加します。

    構造体には、少なくとも 1 つの要素が必要です。 すべての要素を宣言し、それに対するアクセス レベルを指定する必要があります。 キーワードなしで Dim ステートメント を使用する場合、アクセシビリティは既定で Publicに設定されます。

    Private Structure employee  
        Public givenName As String  
        Public familyName As String  
        Public phoneExtension As Long  
        Private salary As Decimal  
        Public Sub giveRaise(raise As Double)  
            salary *= raise  
        End Sub  
        Public Event salaryReviewTime()  
    
        ' Method to raise the event
        Public Sub TriggerSalaryReview()
            RaiseEvent salaryReviewTime()
        End Sub
    End Structure  
    

    前の例の salary フィールドは Privateです。これは、含まれているクラスからでも、構造体の外部からアクセスできないことを意味します。 ただし、giveRaise プロシージャは Publicされているため、構造体の外部から呼び出すことができます。 同様に、salaryReviewTime イベントを発生させる構造体内のメソッドを呼び出すことによって、間接的にイベントを発生させることができます。 例えば:

    Public Sub TriggerSalaryReview()
        RaiseEvent salaryReviewTime()
    End Sub
    

    これにより、構造体の外部から直接イベントにアクセスできないようにしながら、イベントを発生させる方法とタイミングを制御できます。

    変数、Sub プロシージャ、およびイベントに加えて、構造体の定数、Function プロシージャ、およびプロパティを定義することもできます。 少なくとも 1 つの引数を受け取る場合は、の既定のプロパティとして最大 1 つのプロパティを指定できます。 SharedSub プロシージャを使用してイベントを処理できます。 詳細については、「方法: Visual Basicで既定のプロパティを宣言および呼び出す」を参照してください。

関連項目