Microsoft Visual Basic 2010 Developer's Handbook
Total Page:16
File Type:pdf, Size:1020Kb
Microsoft Microsoft Visual Basic 2010 Developer's Handbook Klaus Loffelmann Sarika Calla Purohit ble of Contents Foreword xxiii Introduction xxvii I Beginning with Language and Tools 1 Beginners All-Purpose Symbolic Instruction Code 3 Starting Visual Studio for the First Time 4 Console Applications 6 Starting an Application 8 Anatomy of a (Visual Basic) Program 10 Starting Up with the Main Method 12 Methods with and Without Return Values 15 Defining Methods Without Return Values by Using Sub 16 Defining Methods with Return Values by Using Function 16 Declaring Variables 16 Nullables 19 Expressions and Definitions of Variables 21 Defining and Declaring Variables at the Same Time 21 Complex Expressions 22 Boolean Expressions 23 Comparing Objects and Data Types 24 Deriving from Objects and Abstract Objects 25 Properties 26 Type Literal for Determining Constant Types 27 Type Safety 29 Local Type Inference 32 Arrays and Collections 34 What do you think of this book? We want to hear from you! Microsoft is interested in hearing your feedback so we can continually improve our books and learning resources for you. To participate in a brief online survey, please visit: microsoft.com/learning/booksurvey viii Table of Contents Executing Program Code Conditionally 36 36 Else ... Elself ... End If If... Then ... The Logical Operators And, Or, Xor, and Not 37 Comparison Operators That Return Boolean Results 39 Short Circuit Evaluations with OrElse and AndAlso 41 Select 42 Select... Case ... End Loops 44 For... Next Loops 45 47 For ... Each Loops End While 49 Do ... Loop and While ... Loops Exit—Leaving Loops Prematurely 50 Continue—Repeating Loops Prematurely 51 Simplified Access to Object Properties and Methods Using With 51 ... End With The Scope of Variables 52 -= 54 The += and Operators and Their Relatives The Bit Shift Operators << and >> 55 Error Handling in Code 56 Elegant Error Handling with Try/Catch/Finally 58 2 Introduction to the .NET Framework 65 What Is .NET, and What Is It Composed Of? 65 What Is an Assembly? 66 What Is a Namespace? 66 Common Language Runtime and Common Language Infrastructure 71 The Framework Class Library and the Base Class Library 71 3 Sightseeing 75 Introduction 75 Starting Visual Studio for the First Time: Selecting the Profile 76 The Start Page: Where Your Developing Endeavors Begin 79 Beginning Development Experience—Creating New Projects 81 Migrating from Previous Versions of Visual Studio to Visual Studio 2010 85 Upgrading Projects created with Visual Studio 2003 Through 2008 85 Table of Contents Upgrading Visual Basic 6.0 Applications to Visual Studio 2010 87 Multitargeting of Visual Basic Applications by Using Visual Studio 2010 87 The History of Multitargeting 87 Changing the Target Framework for Applications 90 Interesting Read for Multitargeting 95 Limitations of Multitargeting 95 Zooming In the New and Improved WPF-Based IDE 97 Managing Screen Real Estate 99 Persistence of Window Layout 103 Common Use Scenarios 104 Searching, Understanding, and Navigating Code 106 Navigate To 106 Changing the Highlight Color 109 Regions and Outlining 110 Architecture Explorer 112 Sequence Diagram 112 Class Diagram 113 Coding Bottom Up 114 The Generate From Usage Feature 117 Customizing Types by Using the Generate New Type Dialog 117 Extending Visual Studio 118 Managing Visual Studio Extensions 119 Extension Types 120 Introduction to Windows Forms—Designers and Code Editor by Example 121 Case Example: the DVD Cover Generator 122 Specifications for "Covers" 123 Creating a New Project 125 Designing Forms with the Windows Forms Designer 126 Positioning Controls 128 Performing Common Tasks on Controls by Using Smart Tags 132 Dynamically Arranging Controls at Runtime 133 Automatic Scrolling of Controls in Containers 143 Selecting Controls That Users Can't Reach with the Mouse 146 Determining the Tab Order of Controls 146 Using the Name, Text, and Caption Properties 149 Setting up Accept and Cancel Buttons for a Form 151 X Table of Contents Adding Multiple Forms to a Project 152 What's Next? 154 Naming Conventions for Controls in this Book 155 Functions for Control Layout in the Designer 155 Keyboard Shortcuts for Positioning Controls 158 The Code Editor 159 Setting the Editor Display to the Correct Size 159 Many Roads Lead to the Code Editor 160 IntelliSense—The Strongest Workhorse in the Coding Stable 160 Automatic Completion of Structure Keywords and Code Indentation 163 Error Detection in the Code Editor 164 XML Documentation Comments for IntelliSense for Customized Objects and Classes 168 Adding New Code Files to the Project 172 Refactoring Code 174 Code Snippets Library 178 Saving Application Settings with the Settings Designer 182 Congratulations! 190 5 Introduction to Windows Presentation Foundation 191 What Is the Windows Presentation Foundation? 191 What's So New About WPF? 193 25 Years of Windows, 25 Years of Drawn Buttons 194 How WPF Brings Designers and Developers Together 204 Extensible Application Markup Language 207 Event Handling in WPF and Visual Basic 214 XAML Syntax Overview 215 ImageResizer—a Practical WPF Example 219 6 The Essential .NET Data Types 257 Numeric Data Types 258 Defining and Declaring Numeric Data Types 258 Delegating Numeric Calculations to the Processor 260 Numeric Data Types at a Glance 264 The Numeric Data Types at a Glance 270 Methods Common to all Numeric Types 274 Special Functions for all Floating-Point Types 279 Special Functions for the Decimal Type 281 Table of Contents xi The Char Data Type 281 The String Data Type 283 Strings—Yesterday and Today * 283 Declaring and Defining Strings 284 Handling Empty and Blank Strings 284 Automatic String Construction 285 Assigning Special Characters to a String 286 Memory Requirements for Strings 287 No Strings Attached, or Are There? Strings are Immutable! 288 Iterating through Strings 296 StringBuildervs. String: When Performance Matters 297 Performance Comparison: String vs. String Builder 298 The Boolean Data Type 302 Converting to and from Numeric Data Types 302 Converting to and from Strings 303 The Dare Data Type 303 TimeSpan: Manipulating Time and Date Differences 304 A Library with Useful Functions for Date Manipulation 305 Converting Strings to Date Values 308 .NET Equivalents of Base Data Types 312 The GUID Data Type 313 Constants and Read-Only Fields (Read-Only Members) 315 Constants 316 Read-Only Fields 317 Part ii Object-Oriented Programming 7 A Brief Introduction to Object-Oriented Programming 321 Using Classes and Objects: When and Why? 323 Mini Address Book—the Procedural Version 324 8 Class Begins 327 What Is a Class? 327 Instantiating Classes with New 330 Initializing Public Fields During Instantiation 332 New or Not New: About Objects and Reference Types 332 Nothing 336 Nothing as a Null Reference Pointer 336 Nothing and Default Values 337 xii Table of Contents Using Classes 338 340 Value Types 341 Creating a Value Type with a Structure Assigning a Value Type to a Variable 342 9 First Class Programming 343 Using Properties 344 Assigning Values to Properties 346 Passing Arguments to Properties 350 Default Properties 351 Avoid the Ultimate Property-No-Go 353 Public Variables or Properties—a Question of Faith? 354 Class Constructors: Defining What Happens in New 356 Parameterized Constructors 358 Class Methods with Sub and Function 365 Overloading Methods, Constructors, and Properties 366 Mutual Calling of Overloaded Methods 372 Mutual Calling of Overloaded Constructors 374 Overloading Property Procedures with Parameters 375 Specifying Variable Scope with Access Modifiers 376 Access Modifiers and Classes 376 Access Modifiers and Procedures (Subs, Functions, Properties) 377 Access Modifiers and Variables 378 Different Access Modifiers for Property Accessors 378 Static Elements 380 Static Methods 381 Static Properties 383 Distributing Class Code over Multiple Code Files by Using Partial 384 Partial Class Code for Methods and Properties 384 10 Class Inheritance and Polymorphism 387 Reusing Classes Through Inheritance 387 Initializing Field Variables for Classes Without Default Constructors 398 Overriding Methods and Properties 399 Overriding Existing Methods and Properties of .NET Framework Classes 402 Table of Contents Polymorphism •. -403 A Simple Example of Polymorphism 407 Using Polymorphism in Real World Applications 410 Polymorphism and the Use of Me, MyClass, and MyBase 424 Abstract Classes and Virtual Procedures 426 Declaring a Class as Abstract with Mustlnherit 427 Declaring a Method or Property of an Abstract Class as Virtual with MustOverride 427 Interfaces 429 Editor Support for Abstract Classes and Interfaces 436 Interfaces that Implement Interfaces 441 Binding Multiple Interfaces in a Class 442 The Built-in Members of the Object Type 443 the Returning String Representation of an Object with ToString. .444 Comparing Objects .444 Equals, Is, and IsNot in Real World Scenarios 446 The Methods and Properties of Object: An Overview 448 Shadowing of Class Procedures 449 Shadows as Interruptor of the Class Hierarchy 450 Special Form "Module" in Visual Basic 455 Singleton Classes and Self-Instantiating Classes 455 11 Developing Value Types 459 A Practical Example of Structures 459 Passing Value and Reference Parameters 465 Constructors and Default Instantiations of Value Types 466 No Default Constructor Code for Value Types 467 When to Use Value Types—When to Use Reference Types 468 Targeted Memory Assignment for Structure Members with the Attributes StructLayout and FieldOffset 469 12 Typecasting and Boxing