2.1. OBJECT-ORIENTED TERMINOLOGY2.1.1. Objects, Classes, and Instances2.1.2. Composition of an Object2.1.2.1. Interface2.1.2.2. Implementation or Behavior2.1.2.3. Fields or Instance Variables2.1.3. System.Object2.2. WORKING WITH VISUAL BASIC TYPES2.2.1. Value and Reference Types2.2.2. Primitive Types2.3. COMMANDS: CONDITIONAL2.3.1. If Then2.3.2. Comparison Operators2.3.3. Select Case2.4. VALUE TYPES (STRUCTURES)2.4.1. Boolean2.4.2. Integer Types2.4.2.1. Short2.4.2.2. Integer2.4.2.3. Long2.4.3. Unsigned Types2.4.4. Decimal Types2.4.4.1. Single2.4.4.2. Double2.4.4.3. Decimal2.4.5. Char and Byte2.4.6. DateTime2.5. REFERENCE TYPES (CLASSES)2.5.1. The Object Class2.5.2. The String Class2.5.2.1. String()2.5.2.2. The SubString Method2.5.2.3. The PadLeft and PadRight Methods2.5.2.4. The String.Split Method2.5.2.5. The String Class Is Immutable2.5.2.6. String Constants2.5.3. XML Literals2.5.4. The DBNull Class and IsDBNull Function2.6. PARAMETER PASSING2.6.1. ParamArray2.7. VARIABLE SCOPE2.8. WORKING WITH OBJECTS2.8.1. Objects Declaration and Instantiation2.8.2. Object References2.8.3. Dereferencing Objects2.8.4. Early Binding versus Late Binding2.8.4.1. Implementing Late Binding2.9. DATA TYPE CONVERSIONS2.9.1. Performing Explicit Conversions2.9.1.1. Parse and TryParse2.9.1.2. Using the CType Function2.9.1.3. Using DirectCast2.9.1.4. Using TryCast2.10. CREATING CLASSES2.10.1. Basic Classes2.10.1.1. The Class Keyword2.10.1.2. Fields2.10.1.3. Methods2.10.1.4. Methods That Return Values2.10.1.5. Indicating Method Scope2.10.1.6. Method Parameters2.10.1.7. Properties2.10.1.8. Parameterized Properties2.10.1.9. Read-Only Properties2.10.1.10. Write-Only Properties2.10.1.11. The Default Property2.10.1.12. Events2.10.2. Handling Events2.10.3. Handling Multiple Events2.10.4. The WithEvents Keyword2.10.5. Raising Events2.10.6. Declaring and Raising Custom Events2.10.7. Receiving Events with WithEvents2.10.8. Receiving Events with AddHandler2.10.9. Constructor Methods2.10.9.1. Parameterized Constructors2.10.10. Termination and Cleanup2.11. ADVANCED CONCEPTS2.11.1. Overloading Methods2.11.1.1. Method Signatures2.11.1.2. Combining Overloading and Optional Parameters2.11.2. Overloading Constructor Methods2.11.2.1. Overloading the Constructor Method2.11.3. Shared Methods, Variables, and Events2.11.3.1. Shared Variables2.11.3.2. Shared Methods2.11.3.3. Shared Properties2.11.3.4. Shared Events2.11.3.5. Shared Constructor2.11.4. Operator Overloading2.11.4.1. Defining AndAlso and OrElse2.11.5. Delegates2.11.5.1. Declaring a Delegate2.11.5.2. Using the Delegate Data Type2.11.5.3. Implementing a Delegate Method2.11.6. Classes versus Components2.11.7. Lambdas2.12. SUMMARY