Wiki
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
  • 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>
  • 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