1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu Lesson13: Interfaces pptx

3 343 0
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Lesson 13: Interfaces
Tác giả Joe Mayo
Thể loại Tutorial
Năm xuất bản 2002
Định dạng
Số trang 3
Dung lượng 44,55 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

The reason interfaces only provide definitions is because they are inherited by classes and structs, which must provide an implementation for each interface member defined.. For instan

Trang 1

Using Excellent Tools to Write Web Applications Targeting

the NET Common Language Runtime (CLR)

[Home] [Up] [Lesson01] [Lesson02] [Lesson03] [Lesson04] [Lesson05 [Lesson06] [Lesson07] [Lesson08] [Lesson09] [Lesson10] [Lesson11

[Lesson12] [Lesson13]

On sale Now! C#

Unleashed is an

in-depth guide for

intermediate to

advanced software

developers to learn

the C#

programming

language and

serve as a desktop

reference

The C# Station Tutorial

by Joe Mayo, 02/24/02

Lesson 13: Interfaces

This lesson teaches C# Interfaces Our objectives are as follows:

l Understand the Purpose of Interfaces

l Define an Interface

l Use an Interface

l Implement Interface Inheritance

An interface looks like a class, but has no implementation The only thing

it contains are definitions of events, indexers, methods and/or

properties The reason interfaces only provide definitions is because they

are inherited by classes and structs, which must provide an

implementation for each interface member defined

So, what are interfaces good for if they don't implement functionality?

They're great for putting together plug-n-play like architectures where components can be interchanged at will Since all interchangeable

components implement the same interface, they can be used without any extra programming The interface forces each component to expose

specific public members that will be used in a certain way

Because interfaces must be defined by inheriting classes and structs, they define a contract For instance, if class foo inherits from the IDisposable interface, it's making a statement that it guarantees it has the Dispose() method, which is the only member of the IDisposable interface Any code that wishes to use class foo may check to see if class foo inherits

IDisposable When the answer is true, then the code knows that it can

call foo.Dispose() Listing 13-1 shows how to define an interface:

Listing 13-1 Defining an Interface: MyInterface.cs

interface IMyInterface

Trang 2

void MethodToImplement();

}

Listing 13-1 shows defines an interface named IMyInterface A common naming convention is to prefix all interface names with a capital "I" This

interface has a single method named MethodToImplement() This could

have been any type of method declaration with different parameters and return types I just chose to declare this method with no parameters and

a void return type to make the example easy Notice that this method does not have an implementation (instructions between curly braces - {}), but instead ends with a semi-colon, ";" This is because the interface only specifies the signature of methods that an inheriting class or struct must implement Listing 13-2 shows how this interface could be used

Listing 13-2 Using an Interface: InterfaceImplementer.cs

class InterfaceImplementer : IMyInterface {

static void Main() {

InterfaceImplementer iImp = new InterfaceImplementer();

iImp.MethodToImplement();

}

public void MethodToImplement() {

Console.WriteLine("MethodToImplement() called.");

} }

The InterfaceImplementer class in Listing 13.2 implements the

IMyInterface interface Indicating that a class inherits an interface is the

same as inheriting a class In this case, the following syntax is used:

class InterfaceImplementer : IMyInterface

Now that this class inherits the IMyInterface interface, it must implement it's members It does this by implementing the MethodToImplement()

method Notice that this method implementation has the exact same

signature, parameters and method name, as defined in the IMyInterface interface Any difference will cause a compiler error Interfaces may also

inherit other interfaces Listing 13-3 shows how inherited interfaces are implemented

Listing 13-3 Interface Inheritance: InterfaceInheritance.cs

using System;

interface IParentInterface {

void ParentInterfaceMethod();

}

Trang 3

interface IMyInterface : IParentInterface {

void MethodToImplement();

}

class InterfaceImplementer : IMyInterface {

static void Main() {

InterfaceImplementer iImp = new InterfaceImplementer();

iImp.MethodToImplement();

iImp.ParentInterfaceMethod();

}

public void MethodToImplement() {

Console.WriteLine("MethodToImplement() called.");

}

public void ParentInterfaceMethod() {

Console.WriteLine("ParentInterfaceMethod() called.");

} }

The code in listing 31.3 contains two interfaces: IMyInterface and the

interface it inherits, IParentInterface When one interface inherits

another, any implementing class or struct must implement every interface member in the entire inheritance chain Since the InterfaceImplementer

class in Listing 13-3 inherits from IMyInterface , it also inherits IParentInterface Therefore, the InterfaceImplementer class must

implement the MethodToImplement() method specified in the

IMyInterface interface and the ParentInterfaceMethod() method specified

in the IParentInterface interface

In summary, you now understand what interfaces are You can implement

an interface and use it in a class Inherfaces may also be inherited by other interface Any class or struct that inherits an interface must also implement all members in the entire interface inheritance chain

Your feedback is very important and I appreciate any constructive contributions you have Please feel free to contact me for any questions or comments you may have about this lesson

Feedback

C# Station

Ngày đăng: 10/12/2013, 16:16

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w