(続き)
19.4 不完全な型
型のすべてのソース コードを 1 つのファイルに保持するのは良いプログラミング方法ですが、場合によっては型が非常に大きくなり、これが現実的な制限になります。さらに、プログラマーはソース コード ジェネレーターを使用してアプリケーションの初期構造を生成し、結果のコードを変更することもよくあります。残念ながら、将来ソース コードが再発行されると、既存の変更は上書きされます。
不完全型 (部分型) では、クラス、構造体、インターフェイスを複数の部分に分割し、異なるソース ファイルに保存でき、開発とメンテナンスがより容易になります。さらに、不完全型を使用すると、特定の型の機械生成部分とユーザー作成部分を分離できるため、ツールによって生成されたコードを簡単に拡張できます。
複数の部分で型を定義する場合、新しい型修飾子部分を使用できます。以下は、2 つの部分で実装された不完全なクラスの例です。たとえば、最初の部分はデータベース マッピング ツールを使用して機械生成され、2 番目の部分は手動で作成されるため、2 つの部分は異なるソース ファイルに存在する可能性があります。
public partial class Customer { private int id; private string name; private string address; pivate List<Order> orders; public Customer() { … } } public partial class Customer { public void SubmitOrder(Order order) { orders.Add(order); } public bool HasOutstandingOrders() { return orders.Count>0; } }
前の 2 つの部分を一緒にコンパイルすると、結果として得られるコードは、単一ユニットとして記述されたクラスと同じになります。
public class Customer { private int id; private string name; private string address; pivate List<Order> orders; public Customer() { … } public void SubmitOrder(Order order) { orders.Add(order); } public bool HasOutstandingOrders() { return orders.Count>0; } }
不完全な型のすべての部分は、コンパイル時に結合できるように、一緒にコンパイルする必要があります。特に、不完全な型では、既にコンパイルされた型への拡張は許可されません。
上記は C# 2.0 仕様化 (3) の内容です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) をご覧ください。