構造

このヘルプでは、COBOL、C#、VB.NET の間にある構造の相違点について説明します。

COBOL の構造

      $set sourceformat(free)
*> COBOL uses valuetype-id to define a value type
valuetype-id StudentRecord.

    01 #name string public.
    01 gpa float-short public.
    method-id new.
        procedure division using by value nam as string, gpa as float-short.
        set #name to nam
        set self::"gpa" to gpa
    end method.
end valuetype StudentRecord.

class-id a.

    method-id main static.
        01 stu type StudentRecord value new StudentRecord("Bob", 3.5).
        01 stu2 type StudentRecord.

        set stu2 to stu
        set stu2::name to "Sue"
        display stu::name   *> Prints Bob
        display stu2::name  *> Prints Sue
    end method.

end class a.

C# の構造

// C# uses struct to define a value type
struct StudentRecord
{
  public string name;
  public float gpa;

  public StudentRecord(string name, float gpa)
  {
    this.name = name;
    this.gpa = gpa;
  }
}
StudentRecord stu = new StudentRecord("Bob", 3.5f);
StudentRecord stu2 = stu;

stu2.name = "Sue";
Console.WriteLine(stu.name);    // Prints Bob
Console.WriteLine(stu2.name);   // Prints Sue

VB.NET の構造

' VB Users Structure to define a value type
Structure StudentRecord
  Public name As String
  Public gpa As Single

  Public Sub New(ByVal name As String, ByVal gpa As Single)
    Me.name = name
    Me.gpa = gpa
  End Sub
End Structure

Dim stu As StudentRecord = New StudentRecord("Bob", 3.5)
Dim stu2 As StudentRecord = stu

stu2.name = "Sue"
Console.WriteLine(stu.name)    ' Prints Bob
Console.WriteLine(stu2.name)   ' Prints Sue

これらの例の一部は、ハーディング大学コンピュータ サイエンス学部の Frank McCown 博士が作成したもので、クリエイティブ コモンズ ライセンスに基づいて使用が許可されています。