ホームページ  >  記事  >  バックエンド開発  >  C# 2.0 の仕様(3)

C# 2.0 の仕様(3)

黄舟
黄舟オリジナル
2017-01-03 10:16:121318ブラウズ

(続き)

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) をご覧ください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:C# 2.0 仕様(二)次の記事:C# 2.0 仕様(二)