ValueTypes

Value types can contain data members and function members, similar to classes. The difference is that value types store the data as values and don't require heap allocation.

valuetype-specification

Syntax for valuetype-specification 
 valuetype-header constraints-paragraph static-or-instance-field static-or-instance-member

valuetype-header

Syntax for valuetype-header
 access-modifier type-specifier attribute-clause

Example

valuetype-id StudentRecord.
01 #name            string public.
01 averageMark      float-short public.

method-id new(studentName as string, averageMark as float-short).
    set self::name to studentName
    set self::averageMark to averageMark
end method.

end valuetype.

class-id RecordClient.

method-id main static.
    declare stu = new StudentRecord("Bob", 3.5).
    declare stu2 as 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.

See also the ValueTypes sample, which is available from Start > All Programs > Micro Focus Enterprise Developer > Samples > Visual COBOL Samples, under COBOL for .NET.