7.1 What Will Be Covered in This Chapter7.2 Review7.2.1 Moving Forward7.3 MonoDevelop7.3.1 Find in Files7.3.2 Word Processors7.3.3 Mono History7.4 Function Overloading7.4.1 A Closer Look at Functions7.4.1.1 A Basic Example7.4.2 Function Signature7.4.3 Different Signatures7.4.4 Putting It Together7.4.5 Not Quite Recursion7.4.6 DrawWord7.4.7 What We’ve Learned7.5 Accessors (or Properties)7.5.1 Value7.5.1.1 A Basic Example7.5.2 Set Event7.5.3 Read-Only Accessor7.5.4 Simplification7.5.5 What We’ve Learned7.6 Base Classes: Another Look7.6.1 Generalization—Base Classes7.6.2 Specialization7.6.3 Base7.6.4 Partial7.6.5 Protected, Private, and Public7.6.6 What We’ve Learned7.7 Optional Parameters7.7.1 Using Optionals7.7.1.1 A Basic Example7.7.2 Optional Arguments7.7.3 Named Parameters7.7.3.1 A Basic Example7.7.4 Combining What We’ve Learned7.7.5 What We’ve Learned7.8 Delegate Functions7.8.1 Delegates7.8.1.1 A Basic Example7.8.2 Delegate Signatures7.8.3 Stacking Delegates7.8.4 Using Delegates7.8.5 What We’ve Learned7.9 Interface7.9.1 Early Planning7.9.1.1 A Basic Example7.9.1.2 Using Accessors7.9.2 Interface Methods7.9.2.1 Breaking a Fixing7.9.3 Multiple Interfaces7.9.4 IComparer7.9.5 Using IComparer7.9.6 What We’ve Learned7.10 Class Constructors Revisited7.10.1 A Basic Example7.10.2 When to Create a New Class7.10.2.1 Add in a Private zposition Offset7.10.3 Static Functions7.10.3.1 Using a Delegate Function7.10.4 What We’ve Learned7.11 Preprocessor Directives7.11.1 A Basic Example7.11.2 UNITY_EDITOR7.11.3 Warning7.11.4 Organizing7.11.5 What We’ve Learned7.12 Exceptions7.12.1 A Basic Example7.12.2 Exception Messages7.12.3 Custom Exceptions7.12.4 Finally7.12.5 Try–Catch and Finally in Use7.12.6 What We’ve Learned7.13 IEnumerator7.13.1 Enumeration7.13.1.1 A Basic Example7.13.1.2 What Doesn’t Work7.13.2 Implementing IEnumerator7.13.3 What We’ve Learned7.14 Generics7.14.1 Generic Functions7.14.1.1 A Basic Example7.14.1.2 Why T?7.14.2 Making Use of Generic Functions7.14.3 Generic Types7.14.4 Var7.14.5 Multiple Generic Values7.14.6 What We’ve Learned7.15 Events7.15.1 A Basic Example7.15.2 A Proper Event7.15.3 EventArgs7.15.4 Update () to Event7.15.5 Generic EventArg7.15.6 What We’ve Learned7.16 Unity-Friendly Classes7.16.1 Extensions7.16.2 A Basic Example7.16.3 Inheriting from Object7.16.4 OnUpdate7.16.5 What We’ve Learned7.17 Destructors7.17.1 A Basic Example7.17.2 Clearing Out Objects7.17.3 What We’ve Learned7.18 Concurrency or Coroutines7.18.1 Yield7.18.1.1 A Basic Example7.18.2 Setting Up Timers7.18.3 Random Decisions with Logic7.18.4 Stopping a Coroutine7.18.5 What We’ve Learned7.19 Dictionary, Stacks, and Queues7.19.1 A Basic Example7.19.2 ContainsKey7.19.3 Stacks7.19.3.1 A Basic Example7.19.4 Queues7.19.5 What We’ve Learned7.20 Callbacks7.20.1 A Basic Example7.20.2 Dynamic Callback Assignment7.20.3 WWW7.20.4 What We’ve Learned7.21 Lambda Expressions7.21.1 Anonymous Expressions7.21.1.1 A Basic Example7.21.2 Lambda Expressions7.21.2.1 A Basic Example7.21.3 When Lambdas Are Useful7.21.4 Lambda Statements7.21.5 What We’ve Learned7.22 Leveling Up