programming in c# with visual studio 2010 vol II (microsoft)

884 7.7K 0
 programming in c# with visual studio 2010 vol II (microsoft)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Tài liệu học lập trình C# cho sinh viên và mọi người.

OFFICIAL MICROSOFT LEARNING PRODUCT 10266A Programming in C# with Microsoft® Visual Studio® 2010 Be sure to access the extended learning content on your Course Companion CD enclosed on the back cover of the book. ii Programming in C# with Microsoft® Visual Studio® 2010 Information in this document, including URL and other Internet Web site references, is subject to change without notice. Unless otherwise noted, the example companies, organizations, products, domain names, e-mail addresses, logos, people, places, and events depicted herein are fictitious, and no association with any real company, organization, product, domain name, e-mail address, logo, person, place or event is intended or should be inferred. Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation. Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property. The names of manufacturers, products, or URLs are provided for informational purposes only and Microsoft makes no representations and warranties, either expressed, implied, or statutory, regarding these manufacturers or the use of the products with any Microsoft technologies. The inclusion of a manufacturer or product does not imply endorsement of Microsoft of the manufacturer or product. Links may be provided to third party sites. Such sites are not under the control of Microsoft and Microsoft is not responsible for the contents of any linked site or any link contained in a linked site, or any changes or updates to such sites. Microsoft is not responsible for webcasting or any other form of transmission received from any linked site. Microsoft is providing these links to you only as a convenience, and the inclusion of any link does not imply endorsement of Microsoft of the site or the products contained therein. © 2010 Microsoft Corporation. All rights reserved. Microsoft, and Windows are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. All other trademarks are property of their respective owners. Product Number: 10266A Part Number: 01918 Released: 09/2010 Programming in C# with Microsoft® Visual Studio® 2010 v Contents Module 1: Introducing C# and the .NET Framework Lesson 1: Introduction to the .NET Framework 4 1-4 Lesson 2: Creating Projects Within Visual Studio 2010 1-16 Lesson 3: Writing a C# Application 1-33 Lesson 4: Building a Graphical Application 1-44 Lesson 5: Documenting an Application 1-58 Lesson 6: Debugging Applications by Using Visual Studio 2010 1-66 Lab: Introducing C# and the .NET Framework 1-78 Module 2: Using C# Programming Constructs Lesson 1: Declaring Variables and Assigning Values 2-4 Lesson 2: Using Expressions and Operators 2-23 Lesson 3: Creating and Using Arrays 2-36 Lesson 4: Using Decision Statements 2-49 Lesson 5: Using Iteration Statements 2-63 Lab: Using C# Programming Constructs 2-78 Module 3: Declaring and Calling Methods Lesson 1: Defining and Invoking Methods 3-3 Lesson 2: Specifying Optional Parameters and Output Parameters 3-29 Lab: Declaring and Calling Methods 3-39 Module 4: Handling Exceptions Lesson 1: Handling Exceptions 4-3 Lesson 2: Raising Exceptions 4-23 Lab: Handling Exceptions 4-34 vi Programming in C# with Microsoft® Visual Studio® 2010 Module 5: Reading and Writing Files Lesson 1: Accessing the File System 5-3 Lesson 2: Reading and Writing Files by Using Streams 5-27 Lab: Reading and Writing Files 5-45 Module 6: Creating New Types Lesson 1: Creating and Using Enumerations 6-3 Lesson 2: Creating and Using Classes 6-12 Lesson 3: Creating and Using Structures 6-33 Lesson 4: Comparing References to Values 6-41 Lab: Creating New Types 6-55 Module 7: Encapsulating Data and Methods Lesson 1: Controlling Visibility of Type Members 7-4 Lesson 2: Sharing Methods and Data 7-15 Lab: Encapsulating Data and Methods 7-29 Module 8: Inheriting from Classes and Implementing Interfaces Lesson 1: Using Inheritance to Define New Reference Types 8-3 Lesson 2: Defining and Implementing Interfaces 8-27 Lesson 3: Defining Abstract Classes 8-45 Lab: Inheriting from Classes and Implementing Interfaces 8-56 Module 9: Managing the Lifetime of Objects and Controlling Resources Lesson 1: Introduction to Garbage Collection 9-4 Lesson 2: Managing Resources 9-21 Lab: Managing the Lifetime of Objects and Controlling Resources 9-35 Module 10: Encapsulating Data and Defining Overloaded Operators Lesson 1: Creating and Using Properties 10-4 Lab A: Creating and Using Properties 10-26 Lesson 2: Creating and Using Indexers 10-38 Lab B: Creating and Using Indexers 10-50 Programming in C# with Microsoft® Visual Studio® 2010 vii Lesson 3: Overloading Operators 10-60 Lab C: Overloading Operators 10-79 Module 11: Decoupling Methods and Handling Events Lesson 1: Declaring and Using Delegates 11-4 Lesson 2: Using Lambda Expressions 11-14 Lesson 3: Handling Events 11-22 Lab: Decoupling Methods and Handling Events 11-38 Module 12: Using Collections and Building Generic Types Lesson 1: Using Collections 12-4 Lab A: Using Collections 12-22 Lesson 2: Creating and Using Generic Types 12-28 Lesson 3: Defining Generic Interfaces and Understanding Variance 12-42 Lesson 4: Using Generic Methods and Delegates 12-56 Lab B: Building Generic Types 12-69 Module 13: Building and Enumerating Custom Collection Classes Lesson 1: Implementing a Custom Collection Class 13-3 Lesson 2: Adding an Enumerator to a Custom Collection Class 13-21 Lab: Building and Enumerating Custom Collection Classes 13-37 Module 14: Using LINQ to Query Data Lesson 1: Using the LINQ Extension Methods and Query Operators 14-3 Lesson 2: Building Dynamic LINQ Queries and Expressions 14-28 Lab: Using LINQ to Query Data 14-47 Module 15: Integrating Visual C# Code with Dynamic Languages and COM Components Lesson 1: Integrating Visual C# Code with Ruby and Python 15-4 Lesson 2: Accessing COM Components from Visual C# 15-19 Lab: Integrating Visual C# Code with Dynamic Languages and COM Components 15-36 viii Programming in C# with Microsoft® Visual Studio® 2010 Appendix: Lab Answer Keys Module 1 Lab: Introducing C# and the .NET Framework L1-1 Module 2 Lab: Using C# Programming Constructs L2-1 Module 3 Lab: Declaring and Calling Methods L3-1 Module 4 Lab: Handling Exceptions L4-1 Module 5 Lab: Reading and Writing Files L5-1 Module 6 Lab: Creating New Types L6-1 Module 7 Lab: Encapsulating Data and Methods L7-1 Module 8 Lab: Inheriting from Classes and Implementing Interfaces L8-1 Module 9 Lab: Managing the Lifetime of Objects and Controlling Resources L9-1 Module 10 Lab A: Creating and Using Properties L10A-1 Module 10 Lab B: Creating and Using Indexers L10B-1 Module 10 Lab C: Overloading Operators L10C-1 Module 11 Lab: Decoupling Methods and Handling Events L11-1 Module 12 Lab A: Using Collections L12A-1 Module 12 Lab B: Building Generic Types L12B-1 Module 13 Lab: Building and Enumerating Custom Collection Classes L13-1 Module 14 Lab: Using LINQ to Query Data L14-1 Module 15 Lab: Integrating Visual C# Code with Dynamic Languages and COM Components L15-1 Encapsulating Data and Defining Overloaded Operators 10-1 Module 10 Encapsulating Data and Defining Overloaded Operators Contents: Lesson 1: Creating and Using Properties 10-4 Lab A: Creating and Using Properties 10-26 Lesson 2: Creating and Using Indexers 10-38 Lab B: Creating and Using Indexers 10-50 Lesson 3: Overloading Operators 10-60 Lab C: Overloading Operators 10-79 10-2 Programming in C# with Microsoft® Visual Studio® 2010 Module Overview Nearly every application you develop will require you to develop at least one type to represent some entity. Types typically expose methods and data. A simple approach to exposing data is to make the fields used by your class public; however, this is often bad practice—or at least is not the most secure, efficient, or natural technique. For example, providing an array-like syntax may be a better approach when accessing data in a class that stores a collection of data. Similarly, if a class exposes a member that should have only read-only access, exposing a field publicly provides both read and write access. This module will introduce you to properties and indexers. These are elements of Microsoft® Visual C#® that enable you to encapsulate data and expose data appropriately and efficiently. Another syntax you will commonly use is that associated with operators. For example, it is intuitive to write 2 + 3 and expect that the result will be 5. Similarly, you will probably expect "Hello"+ "World" to return the concatenated string "HelloWorld". Many operators have well-defined behavior for the built-in Visual C# types, but you can also define operators for your own types. This module describes how to implement operators for your types by using overloading. Encapsulating Data and Defining Overloaded Operators 10-3 Objectives After completing this module, you will be able to: • Explain how properties work and use them to encapsulate data. • Describe how to use indexers to provide access to data through an array-like syntax. • Describe how to use operator overloading to define operators for your own types. 10-4 Programming in C# with Microsoft® Visual Studio® 2010 Lesson 1 Creating and Using Properties You can use properties to provide controlled access to the data in a type. This lesson introduces you to properties and shows you how to define them in your types. It also explains why you should use this approach to encapsulate data. Objectives After completing this lesson, you will be able to: • Describe the purpose of properties. • Implement properties. • Explain automatic properties. • Instantiate an object by using properties. • Define properties in an interface. • Describe the best practices relating to properties. [...]... property to an interface? Additional Reading For more information about defining properties in an interface, see the Interface Properties (C# Programming Guide) page at http://go.microsoft.com/fwlink/?LinkId=192950 10-20 Programming in C# with Microsoft® Visual Studio 2010 Best Practices When Defining and Using Properties Key Points Properties provide an excellent framework for exposing data from... properties in an object initializer 10-16 Programming in C# with Microsoft® Visual Studio 2010 Question: Why is it important to instantiate required properties to default values in the constructor? Encapsulating Data and Defining Overloaded Operators 10-17 Defining Properties in an Interface Key Points An interface defines a contract that specifies the methods that a class should implement An interface... other types in the same assembly, but read access to a property from a class in any assembly? Additional Reading For more information about using properties, see the Using Properties (C# Programming Guide) page at http://go.microsoft.com/fwlink/?LinkId=192949 10-10 Programming in C# with Microsoft® Visual Studio 2010 Automatic Properties Key Points When you develop a new type, you may include a data... properties and fields 10-12 Programming in C# with Microsoft® Visual Studio 2010 Question: What is the benefit of using an automatic property compared to exposing a public field? Encapsulating Data and Defining Overloaded Operators 10-13 Instantiating an Object by Using Properties Key Points You have previously seen how to use a constructor to instantiate an object and initialize its fields You can... values 10-24 Programming in C# with Microsoft® Visual Studio 2010 5 Convert the Name field to a property by using automatic properties: • Modify the following line of code public string Name; Change it to the following line of code public string Name { get; set; } 6 Convert the Department field to a property by using automatic properties: • Modify the following line of code public string Department;... logging file used by the device The IMeasuringDeviceWithProperties interface will inherit from the IMeasuringDevice interface; classes that implement the new interface will always be required to implement the IMeasuringDevice interface The main tasks for this exercise are as follows: 1 Open the starter project 2 Add properties to the IMeasuringDeviceWithProperties interface 10-30 Programming in C# with. .. MyString { get { return this.myString; } private set { myString = value; } } Using a Property in a Consuming Class You use a property in a consuming class by using the dot notation in the same way as you access a public field The following code example shows how to access the MyString property from the previous code example Internally, the Visual C# Encapsulating Data and Defining Overloaded Operators 10-9... to return the data? 10-22 Programming in C# with Microsoft® Visual Studio 2010 Additional Reading For more information about choosing between properties and methods, see the Choosing Between Properties and Methods page at http://go.microsoft.com/fwlink/?LinkId=192951 Encapsulating Data and Defining Overloaded Operators 10-23 Demonstration: Using Properties Key Points • Convert a field to an automatic... LoggingFileName property will close the existing logging file (if it is open) and then open a new file with the specified name The remaining properties will simply return the value of the underlying field You will test the new functionality by using the MeasureMassDevice class Exercise 1: Defining Properties in an Interface Scenario In this exercise, you will define an interface called IMeasuringDeviceWithProperties... both fields public Employee(string empName, string empDepartment) { this.name = Name; this.department = Department; } 10-14 Programming in C# with Microsoft® Visual Studio 2010 // Initialize name only public Employee(string empName) { this.name = empName; } // Initialize department only public Employee(string empDepartment) { this.department = empDepartment } } The intention of the constructors is

Ngày đăng: 24/01/2014, 19:43

Từ khóa liên quan

Mục lục

  • Programming in C# with Microsoft® Visual Studio® 2010

    • Module 10: Encapsulating Data and Defining Overloaded Operators

      • Module Overview

      • Lesson 1: Creating and Using Properties

        • What Is a Property?

        • Defining a Property

        • Automatic Properties

        • Instantiating an Object by Using Properties

        • Defining Properties in an Interface

        • Best Practices When Defining and Using Properties

        • Demonstration: Using Properties

        • Lab A: Creating and Using Properties

          • Lab Scenario

          • Exercise 1: Defining Properties in an Interface

          • Exercise 2: Implementing Properties in a Class

          • Exercise 3: Using Properties Exposed by a Class

          • Lab Review

          • Lesson 2: Creating and Using Indexers

            • What Is an Indexer?

            • Creating an Indexer

            • Comparing Indexers and Arrays

            • Defining an Indexer in an Interface

            • Demonstration: Creating and Using an Indexer

            • Lab B: Creating and Using Indexers

              • Lab Scenario

              • Exercise 1: Implementing an Indexer to Access Bits in a Control Register

Tài liệu cùng người dùng

Tài liệu liên quan