問題タブ [partial-classes]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - ベスト プラクティス: 部分クラスを使用しない/使用する場合
ヘルパー クラスを独自のファイルに配置するために、部分クラス修飾子をしばらく使用してきました。
今日、私たちは新しい人を迎えました。彼が最後に一緒に働いたチームでは、別のファイルにあるヘルパー クラスを変更すると、メインの部分クラス ファイルが変更に対応できなくなるため、部分クラスを許可していなかったとのことでした。 . また、ヘルパー クラスをメイン クラス内に配置することは、最後の手段としてのみ許可されていたため、すべてが分離されたままでした。
どう思いますか?このような部分クラスの使用に問題はありますか、それとも好みの問題ですか?
たとえば、私は通常、次のようなものを持っています。
- MainClass.cs
- MainClass.Helper1.cs
- MainClass.Helper2.cs
...
entity-framework - Entity Framework - 拡張クラスでエンティティ関係を使用するにはどうすればよいですか?
以下のコードのようにオブジェクトをより簡単に操作できるように、エンティティ フレームワークが作成する部分クラスを拡張しようとしています (エンティティ フレームワークでこれを行うためのより良い方法または例外的な方法があれば教えてください)。
しかしもちろん、次の行に「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というメッセージが表示されます: Me.Status.StatusID = proj.Status.StatusID
部分クラスを拡張するときに、関連するエンティティ値を渡すにはどうすればよいですか? それとも、私がここでやろうとしていることをはるかに簡単に行う方法がありませんか?
c# - 自動生成コードに部分クラスを使用する、ファイルの名前付けなどを設定する方法は?
コード生成ツールを使用して生成されたdatalayer.csファイルがあります。
クラスを部分クラスとしてマークしているので、自分で手書きしたデータレイヤーコードを使用して別のファイルを作成できます。
ファイルにどのように名前を付ける必要がありますか?
私はこのようにする必要があります:
/data/partial/datalayer.cs /data/datalayer.cs
したがって、コードジェネレーターを再度実行すると、ファイルをソースツリーの/partial/フォルダーにダンプするだけです。
提案?
ruby-on-rails - レールでネストされたinsert_htmlパーシャルを使用するとエラーが発生する
したがって、insert_html への呼び出しを含む 2 つの入れ子になったパーシャルがあります。基本的に、各チームには複数のプレイヤーがいて、次のヘルパーでそれぞれパーシャルを呼び出すプレイヤーの追加ボタンとチームの追加ボタンがあります
これは、1 つの insert_html 呼び出しのみを使用する場合は問題なく機能しますが、両方を使用しようとすると、「引数リストの後に ) がありません」という JavaScript エラーが発生し、外側の「チームの追加」ボタンが失敗します。何か案は?
c# - Dispose ロジックを部分クラス ファイルに分離する必要がありますか?
いくつかの C# クラスをリファクタリングしているときに、IDisposable を実装するクラスに出くわしました。
何も考えずに、IDisposable インターフェイスを実装するクラスごとに部分クラス ファイルを作成しました。
例) Stamper.cs -> Stamper.cs + Stamper.Dispose.cs の場合、Stamper.csには実際のスタンピング ロジックが含まれ、 Stamper.Dispose.csには破棄ロジックが含まれます。
コードを見てみると、Stamper.cs はかなりすっきりして読みやすくなっています (約 50 行は単にクリーンアップの破棄コードであった 100 行ではなく、約 52 行になりました)。
私はこれで行き過ぎですか?
*EDIT : ご意見をお寄せいただきありがとうございます。2 つのファイルを 1 つにまとめることにしました。私が直面した問題は、実際のロジックを更新した後に IDisposable 実装を更新するのを実際に忘れていたことです。
さらに、ソース コード内のメソッド間を移動するのにそれほど問題はありませんでした。最初の理由は、私の特定のケースでは 1 つのファイル ソリューションに固執するのに十分な理由のようです。
asp.net - ASP.NETの追加の部分クラス
ASP.NETページの1つに巨大なコードビハインドファイルがあります。コードを複数の部分クラスに分割できれば、コードの保守が簡単になります。ただし、これはASP.NETについては十分に文書化されていません。
追加の部分クラスをApp_Codeフォルダーに移動する必要があることを学びました。Webコントロールを参照するには、Protected WithEvents宣言を使用する必要があるようです(まだ機能するかどうかはわかりませんが)。
私が今電話を切ったのはViewStateです。追加の部分クラスファイルでそれを参照することはできません。部分クラスのクエリ文字列からID番号を取得する必要があります。クエリ文字列値のコードビハインドファイルにパブリックプロパティを作成すると、部分クラスファイルで参照できなくなります。表示されません。
c# - Visual C#、Winform、および部分クラスの狂気
私は .NET で多くの作業を行っていないので、簡単な解決策がある場合はご容赦ください。
「問題」(実際にはもっと煩わしい) は、VC# IDE がデフォルトSystem.Windows.Forms.Form
で、デザイン ビューで継承するクラスを持つすべてのファイルを開くことです。唯一の例外は "*.Designer.cs" ファイルです。
一般的に言えば、これで問題ありません。ただし、partial class
何らかのコントロール ハンドラ コードを実装する がある場合、これは非常に煩わしいものになります。たとえば、ソース ファイルをダブルクリックすると、Winforms デザイナが表示され、空のフォームが表示されます。まったく役に立たない。
これを回避するには、問題のソース ファイルを右クリックし、コンテキスト メニューから [コードの表示] を選択する必要があります。
私の質問はかなり単純です。この不条理を回避するための極寒の方法はありますか? そうでない場合、人々が UI 処理コードをどのように編成しているのか気になります。
ありがとう!
asp.net - 異なるアセンブリの 2 つの部分クラスが同じクラスを表すことは可能ですか?
「MyProject.Data」というプロジェクトに「Article」というクラスがあり、Web アプリケーションのデータ層として機能します。
「MyProject.Admin」という別のプロジェクトがあります。これは、データを表示/編集するための Web ベースの管理システムであり、ASP.NET 動的データを使用して構築されました。
基本的に、部分クラスを使用して Article クラスを拡張し、そのプロパティの 1 つを「UIHint」エクステンダーで拡張して、通常の複数行のテキスト ボックスを FCKEdit コントロールに置き換えることができるようにしたいと考えています。
私の部分クラスとエクステンダーは次のようになります。
部分クラスが元の部分クラスと同じプロジェクト、つまり MyProject.Data プロジェクトにある場合、これはすべて正常に機能します。
ただし、UI の動作はデータ レイヤーではなく、管理レイヤーに配置する必要があります。そこで、このクラスを MyProject.Admin に移動したいと思います。
ただし、そうすると機能が失われます。
私の基本的な質問は、別々のプロジェクトで 2 つの部分クラスを持つことができますが、両方とも同じ「クラス」を参照することはできますか?
そうでない場合、データ層ロジックと UI ロジックを混在させずに、私がやろうとしていることを達成する方法はありますか?
visual-studio-2008 - 部分クラス - Visual Studio 2008
VS がコード ビハインド クラス (例: Default.aspxおよび Default.aspx.cs )で行うように、ソリューション エクスプローラーでグループ化された部分クラスを作成する可能性はありますか。
MyClass.csとMyClass.partial.csを作成したいのですが、ソリューション エクスプローラーで 2 つの別々のファイルとして表示されるべきではありません。