私はそれがVisual StudioからWinFormsのUIコードをUIイベントなどと分けることができます。C#の部分的なキーワードの実用的な使用方法
答えて
partialキーワードは、コード生成ユーティリティで一般的に使用され、開発者が生成されたコードに追加の機能を追加できるようにします。
C#3ではpartialキーワードをメソッドに適用して、生成されたコードのユーザーがジェネレータによって残された空白を埋めるようにすることができます。たとえば、Linq To Sqlデザイナーは、実装されている場合にフレームワークが呼び出すクラスにロジックを追加できるようにする部分的なメソッドを提供しています。ここでの利点は、実装されていない部分メソッドをC#コンパイラが完全に削除するため、実装されていないため、のパフォーマンスがになることはありません。
パーシャルクラスを使用して、非常に大きなクラスを別々のコードファイルに編成することもできますが、この種の使用法は通常、クラスが大きすぎて責任が多すぎるという兆候です。
私はいくつかのメソッドがたくさんのコードを必要とするヘルパークラスのパーティション化にこれを使用しています。これは、各ファイルがクラスの機能の一部を処理するだけなので、可読性を維持するための非常に簡単な方法です。
LINQ to SQLデザイナーは、マッピングクラス外でカスタムビヘイビア(部分的なメソッド)を分割するために幅広く使用します。つまり、その主な目的はコードジェネレータです。
これが役に立ちます。
VBでは、これを使用して、通常のコードを "Option Strict Off"経由でレイトバインディングが必要なコードから分離することができます。
C#では、異常に大きなクラスでのみ使用します。
私が考えることができる部分的なキーワードとしては、ネストされたクラスが最適です。 partialキーワードを指定しないと、すべてのネストされたクラスは、そのクラスを含むクラスと同じコードファイルに入れなければなりません。
私は部分的なクラスとメソッドをLinq2Sqlで常に使用します。そうでなければ、私はUI /コードビハインドクラスの他に何も使用していません。
linq2sqlの部分クラスについて私が気に入っている素晴らしい点の1つは、部分クラスにインターフェイスを継承させることができ、インターフェイスを生成されたクラスにマップすることです。これは、複数のデータプロバイダを持ち、すべてのデータアクセスクラスに同じインタフェースを使用したい場合に最適です。
私が見つけた1つの使用方法は、トレースコードやdevログコードなどの実動コードには存在したくないコードです。これを部分クラスに置くことができます。次に、実動ビルドを行うときに、それらの部分集合を含めずにビルドするだけです。コンパイラは、除外された部分集合への呼び出しを自動的に取り除きます。
部分的なメソッドはおそらく、その特定のユースケースではさらに良く機能します。 – JasonTrue
もう1つの良いアイデア - +1 –
@JasonTrue - 部分的な方法もうまくいくでしょう。状況の必要に応じてどちらか一方を使うだけです。 –
WPFは部分クラスを広く使用します。 XAMLは、追加できる部分クラスを生成します。
一部のクラスで複数の開発者が作業することがわかっている場合、部分クラスを使用してバージョンコントロールでマージンペインを減らしています。たとえば、DALクラスを複数の部分クラスファイルに分割することがよくあります。それらを異なるファイルに置かないと、バージョンctlにチェックインされたときに修正するためにしばらく時間がかかるマージ競合を簡単に取得できます。
クラスが完全に近づくにつれて開発がより混乱しなくなると、部分ファイルが取り除かれます。 VC /マルチリューズの問題をより簡単にするために使用します。
- 1. `stackalloc`キーワードの実際的な使用
- 2. C#の:部分的な方法とアクション、非実装体
- 3. Railsの魔法の部分的な部分的な反復
- 4. Rails 3と部分的な使用
- 5. Powershell:$ ^と$$の実用的な使用法?
- 6. このキーワードを静的メソッドで使用する方法は? C#
- 7. SCSSでは、部分的に部分的な部分をインポートする方法
- 8. 部分的なIDを使用してxpathを使用してC#でSeleniumの要素をループする方法
- 9. 部分的なソースコードを利用したC#Exeの逆コンパイル
- 10. C#の:部分的なクラスは
- 11. 静的キーワードの使用
- 12. 部分的なナップザックJavaの実装
- 13. 部分的なキャリッジリターンを行う方法
- 14. 2つのパラメータに部分的な特殊化を使用する方法
- 15. 部分的なピボットのためのreshape2でのキャストの使用
- 16. JFreechart(Java) - 部分的に破線と部分的に実線の描画方法
- 17. ユニットテストのための部分的な形状の使用typescript
- 18. aws apiゲートウェイプロダクションを使用する実践的な使用方法
- 19. 部分的なドメインクッキーとしてのappspot.comの使用
- 20. AJAXを使用しない部分的なポストバック
- 21. Nティアアーキテクチャの実用的な使用
- 22. %c対%sの実用的な差
- 23. BIO_readを使用した場合の部分的なHTTP応答
- 24. Grunt.jsを使用した部分的なHTMLのコンパイル
- 25. 部分的なプロパティの更新にクラウドデータストアapiを使用する
- 26. ディレクティブと部分的な特殊化の使用
- 27. ASPの古典的なJavaScriptでのCコードの使用方法
- 28. pythonを使用してphantomjsで部分的なWebスナップショットを取る方法は?
- 29. Javaを使用して部分的なJSON応答を返す方法は?
- 30. updatePanelを使用して部分的なポストバックでjavascriptに値を渡す方法
Oo、素晴らしいアイデア!これは私には決して起こりませんでした。 –