Value Types
bool
byte, sbyte
char
short, ushort, int, uint, long, ulong
float, double
decimal
DateTime (a framework type)
Reference Types
object
string
Initializing
bool correct = true;
// Can also infer variable type if the value has a well-defined type
var incorrect = false; // automatically a bool
byte b = 0x2A; // hex
// no support for octal literals
// no support for binary literals
object person = null;
string name = "Dwight";
char grade = 'B';
DateTime now = DateTime.Now;
// No support for date/time literals
decimal amount = 35.99m;
float gpa = 2.9f;
double pi = 3.14159265;
long lTotal = 123456L;
short sTotal = 123;
ushort usTotal = 123;
uint uiTotal = 123;
ulong ulTotal = 123;
Type Information
int x;
Console.WriteLine(x.GetType()); // Prints System.Int32
Console.WriteLine(typeof(int)); // Prints System.Int32
Console.WriteLine(x.GetType().Name); // prints Int32
Type Conversion
float d = 3.5f;
int i = (int)d; // set to 3 (truncates decimal)
|
*>Value Types
*>condition-value
*>binary-char (unsigned)
*>character
*>binary-short, binary-long, binary-double (unsigned)
*>float-short, float-long
*>decimal
*>DateTime (a framework type)
*>Reference types
*>object
*>string
*>Initializing
declare correct as condition-value = true
*> Can also infer variable type if the value has a well-defined type
declare incorrect = false *> automatically a condition-value
declare b as byte = h"2a" *> hex
declare o as byte = o"52" *> octal
declare b2 as byte = b"101010" *> binary
declare person as object = null
declare nam as string = "Dwight"
declare grade as character = "B"
declare now as type DateTime = type DateTime::Now
*> No support for date/time literals
declare amount as decimal = 35.99
declare gpa as float-short = 2.9
declare pi as float-long = 3.14159265
declare lTotal as binary-double = 123456
declare sTotal as binary-short = 123
declare usTotal as binary-short unsigned = 123
declare uiTotal as binary-long = 123
declare ulTotal as binary-long unsigned = 123
*>Type Information
declare x as binary-long
display x::GetType *> Prints System.Int32
display type of binary-long *> Prints System.Int32
display x::GetType::Name *> Prints Int32
*>Type Conversion
declare f as float-short = 3.5 *> automatic conversion
declare i = f as binary-long *> set to 3 (truncates decimal)
end program.
program-id Legacy.
*> COBOL types not supported directly by other languages.
*> Visual COBOL supports these types on all platforms.
*> Only a few examples here
01 displayNumber pic 9(9).99.
01 computeNumber pic 9(9)V99.
01 alphaNumberic pic a(23).
01 binaryStorage pic x(12).
*> Also groups and redefines - a few examples
01 arecord.
03 aSubRecord pic x(10).
03 aUnion pic 9(10) redefines aSubrecord.
end program.
|
Value Types
Boolean
Byte, SByte
Char
Short, UShort, Integer, UInteger, Long, ULong
Single, Double
Decimal
Date
Reference Types
Object
String
Initializing
Dim correct As Boolean = True
' No mechanism for automatic typing
Dim b As Byte = &H2A 'hex
Dim o As Byte = &O52 'octal
' No support for binary literals
Dim person As Object = Nothing
Dim name As String = "Dwight"
Dim grade As Char = "B"c
Dim now As Date = Datetime.Now
Dim past As Date = #12/31/2007 12:15:00 PM#
Dim amount As Decimal = 35.99@
Dim gpa As Single = 2.9!
Dim pi As Double = 3.14159265
Dim lTotal As Long = 123456L
Dim sTotal As Short = 123S
Dim usTotal As UShort = 123US
Dim uiTotal As UInteger = 123UI
Dim ulTotal As ULong = 123UL
Type Information
Dim x As Integer
Console.WriteLine(x.GetType()) ' Prints System.Int32
Console.WriteLine(GetType(Integer)) ' Prints System.Int32
Console.WriteLine(TypeName(x)) ' Prints Integer
Type Conversion
Dim d As Single = 3.5
Dim i As Integer = CType(d, Integer) ' set to 4 (Banker's rounding)
i = CInt(d) ' same result as CType
i = Int(d) ' set to 3 (Int function truncates the decimal)
|