Version 6 (modified by Chuck, 16 years ago) |
---|
- Primitive Types
- Common
- bool
- char
- int (= int32)
- uint (= uint32)
- float (= float64)
- decimal
- number (= decimal, change with -number: option)
- dynamic
- Explicit Sizes
- int8, int16, int32, int64
- uint8, uint16, uint32, uint64
- PrimitiveTypeMembers
- Common
- Complex Types
- Class
- Single inheritance
- Heap-based
- Popular classes
- Object, String, StringBuilder, Exception
- List<of T>, Dictionary<of K, V>, Set<of T>
- Stack<of T>, Queue<of T>
- TextWriter, TextReader, StringWriter
- Struct
- No inheritance (other than Object)
- Value-based
- Popular structs
- DateTime, Color (System.Drawing)
- Interface
- Multipile inheritance
- No code implementation
- Popular interfaces
- IEnumerable, IEnumerable<of T> (but use T* instead; see streams below)
- IComparable, IComparable<of T>
- Class
- Nilable Type
- foo? - can be "foo" or "nil"
- applies to all types
- "dynamic" implies "dynamic?" meaning you can always pass "nil" where "dynamic" is expected
- Streams
- foo* - zero or more objects of type foo
- See StreamType
- Working with types at run-time
- You can get the type of "x" with "x.getType"
- You can make instances with a type at run-time
- t = x.getType
- obj1 = t()
- obj2 = t(0, 0)
- See also
TODO: arrays, passthrough, vari, typetype, generics, local var type inference, greatest common denominator