型のデザインのガイドラインType Design Guidelines

CLR の観点からは、型の 2 つのカテゴリがあります: 参照型と値の型: フレームワークの設計に関する詳細については、するために、それぞれに独自の特定のデザイン規則より論理的にグループの種類を分割しますが、します。From the CLR perspective, there are only two categories of types—reference types and value types—but for the purpose of a discussion about framework design, we divide types into more logical groups, each with its own specific design rules.

クラスは、参照型の一般的なケースです。Classes are the general case of reference types. ほとんどのフレームワークの型の大部分を構成します。They make up the bulk of types in the majority of frameworks. クラスは、豊富なオブジェクト指向の機能がサポートされるを設定して、一般的な適用性を人気を助かりました。Classes owe their popularity to the rich set of object-oriented features they support and to their general applicability. 基底クラスと抽象クラスは、拡張機能に関連する、特殊な論理グループです。Base classes and abstract classes are special logical groups related to extensibility.

インターフェイスは、参照型と値の型の両方で実装できる型です。Interfaces are types that can be implemented by both reference types and value types. したがって、参照型と値の型のポリモーフィックな階層のルートとして使用ができます。They can thus serve as roots of polymorphic hierarchies of reference types and value types. さらに、インターフェイスは、CLR によってネイティブでサポートされていない複数の継承をシミュレートするために使用できます。In addition, interfaces can be used to simulate multiple inheritance, which is not natively supported by the CLR.

構造体の値型の一般的なケースは、小規模で単純な種類、言語プリミティブのように予約されている必要があります。Structs are the general case of value types and should be reserved for small, simple types, similar to language primitives.

列挙型は、週、コンソールの色の日などの値の短いセットを定義するのに使用される値型の特殊なケースです。Enums are a special case of value types used to define short sets of values, such as days of the week, console colors, and so on.

静的クラスは、型の静的メンバーのコンテナーを意図したものです。Static classes are types intended to be containers for static members. その他の操作へのショートカットを提供するよく使用されます。They are commonly used to provide shortcuts to other operations.

デリゲート、例外、属性、配列、およびコレクションは、特定の用途のためのもので、参照型のすべての特殊なケースと、この書籍での設計と使用法のガイドラインは別の場所について説明します。Delegates, exceptions, attributes, arrays, and collections are all special cases of reference types intended for specific uses, and guidelines for their design and usage are discussed elsewhere in this book.

✓ DO 各型が適切に定義された一連の関連するメンバーは、関連付けられていない機能のランダムなコレクションだけでなくであることを確認します。✓ DO ensure that each type is a well-defined set of related members, not just a random collection of unrelated functionality.

このセクションの内容In This Section

クラスまたは構造体の選択Choosing Between Class and Struct
抽象クラスのデザインAbstract Class Design
静的クラスのデザインStatic Class Design
インターフェイスのデザインInterface Design
構造体のデザインStruct Design
列挙型デザインEnum Design
入れ子にされた型Nested Types
Portions © 2005, 2009 Microsoft Corporation.All rights reserved.Portions © 2005, 2009 Microsoft Corporation. All rights reserved.

Pearson Education, Inc. からのアクセス許可によって了承を得て転載Framework デザイン ガイドライン。規則、手法、および再利用可能な .NET ライブラリの第 2 版のパターンKrzysztof Cwalina、Brad 内容では、Microsoft Windows の開発シリーズの一部として、Addison-wesley Professional、2008 年 10 月 22日を公開します。Reprinted by permission of Pearson Education, Inc. from Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition by Krzysztof Cwalina and Brad Abrams, published Oct 22, 2008 by Addison-Wesley Professional as part of the Microsoft Windows Development Series.

関連項目See also