問題タブ [partial-methods]

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.

0 投票する
1 に答える
100 参照

c# - EntityDataModel の部分クラスでオブジェクトの値を変更するにはどうすればよいですか

データベース (Visual Studio 2010、asp.net 4.0、c#) から生成された EntityDataModel があります。エンティティ クラスに関連付けられた部分クラスを使用してビジネス ロジックを実行しようとしています (この場合は、電話番号フィールドをチェックしてスペースを削除します)。

私がそのようなものを使用する場合:

その後、無限ループが発生し (FormatPhoneNumber メソッドが MobilePHoneNo を変更してイベントが再び発生するなど)、スタック オーバーフローが発生します。

代わりに OnMobilePhoneNoChanging を使用して MobilePHoneNo プロパティ (またはvalue値) を変更しようとすると、値が正しく保存されません。

私は何をすべきか ?

0 投票する
0 に答える
5565 参照

c# - 部分メソッドの実装では、「部分メソッドの宣言を実装するための定義宣言が見つかりません...」というエラーが発生します。

設定フォームが必要なWinformsプロジェクトを書いています。その設定フォームには、基本モードと詳細モードの2つのモードが必要です。これら2つの間で変更するコードを作成しました。時間を節約するために、InitializeComponent()メソッドで、基本モードに切り替えるために呼び出されるのと同じメソッドを呼び出すだけにします。私は次のような部分的なメソッドを作成しました:

プログラムファイル(Windowsフォームデザイナが生成するものではない)の部分クラス内で、ウィンドウフォームデザイナが生成するコードのクラスを次のように変更しました。

これは、上記の実装定義を使用して、署名の適切な構文であると思いました。

ただし、コードをビルドしようとすると、「部分メソッドInitializeComponent()の宣言を実装するための定義宣言が見つかりません」と表示され、最初のコードサンプルを示します。

名前をチェックし、対応する名前をコピーして貼り付けて同じであることを確認しましたが、それでも実行できません。これは私のコードの唯一のエラーであり、ビルドと実行を妨げています。何か案は?

0 投票する
3 に答える
4383 参照

asp.net - ASP.NET Designer.cs ファイルを削除するにはどうすればよいですか?

私は .designer.cs ファイルがない以前に VS プロジェクトに取り組んだことがあります。

別のコンピューターで新しいプロジェクトを開始しましたが、designer.cs ファイルを削除できません。それは本当に私を悩ませています。本当に必要ですか、どうすれば削除できますか? どこかに設定があるはずです。

0 投票する
2 に答える
224 参照

c# - デリゲートパラメーターとして使用すると、実装されていない部分メソッドはnullに置き換えられますか?

だから私は2つの異なる方法があります。

1つは通常の方法です

もう1つは、部分的ですが実装されていないものです

このように最初のメソッドを呼び出すと

何が起こりますか、デリゲートパラメータはnullになりますか、メソッド呼び出し全体が削除されますか?

0 投票する
3 に答える
1677 参照

c# - リフレクションを使用して部分メソッドが実装されているかどうかを確認する

バックグラウンド

Linq to SQL を使用しているため、自動生成されたクラスを含む生成された DBML ファイルがあります。生成プロセスの一部では、特定のアクションの部分的なメソッドが作成されます。私の場合、関心のある 2 つのメソッドは、テーブル レコードの挿入と更新に関連しています。これらの部分メソッドは、DBML デザイナーで作成された各テーブルごとに生成されます。次に例を示します。

現在、私のアプリケーションの設計の一部では、これら 2 つの部分メソッドがすべてのテーブルに対して常に実装されている必要があります。(これらは基本的に、挿入/更新されるレコードにタイムスタンプを追加するために使用されます)。

要件

私は単体テスト プロジェクトを持っています。これは一般的な方法ではないかもしれませんが、特定のことが適切に実装されていることを確認するいくつかのテストを含めたいと考えています。この場合、開発者が上記の部分的なメソッドを実装することを覚えていることを確認したいと思います (実際の実装については気にしません。実装されていることだけを気にします)。

問題

私がする必要があるのは、リフレクションを使用して各部分メソッドが実装されているかどうかを確認することですが、それを判断する方法がわかりません。

試みられた努力

これまでのところ、データ コンテキスト内に含まれるメソッドのリストを取得することができました。それを、各テーブルに期待されるメソッドと比較することができます。問題は、特定の部分メソッドに実際に実装があるかどうかを判断する方法が見つからないことです。

0 投票する
2 に答える
145 参照

c# - Orchard カスタム モジュールの部分メソッド

Orchard カスタム モジュールのコーディングに役立つ DSL を開発しました。生成されたドライバーの Editor メソッドでは、部分的なメソッドを使用して、プログラマーが必要に応じて生成されたコードの動作をオーバーライドできるようにしています。

ただし、実行時に、部分メソッドが実装されていないという例外が発生します。

C# の仕様によると、そうである必要はないので、動的コンパイル (またはそのようなもの) がここで邪魔になっているのではないかと考えています。コードは実行およびデバッグの前に手動でコンパイルされるため、実行時にコンパイルする必要があるコードは存在しないことに注意してください。

問題のビットは次のとおりです。

空であっても、別のファイルの部分クラスに「CustomEditorGet」メソッドの実装を追加すると、すべて問題ありません。部分メソッド impl なしで部分クラスを追加するだけでは修正されません。

何かご意見は?

0 投票する
0 に答える
156 参照

c# - LINQ to SQL 部分メソッドは自動生成メソッドをオーバーライドしません

linq to sql で自動生成されたメソッドをオーバーライドする部分メソッドを作成しようとしています。私の読書から、自動生成された方法よりも私の方法を使用する必要があると思います。その場合、なぜこのエラーが発生するのですか? 「型 X は、同じパラメーター型を持つ ZZZ というメンバーを既に定義しています」

プログラムを実行すると、私のメソッドではなく自動生成されたメソッドが使用されます。

ありがとう、ティム

0 投票する
2 に答える
1553 参照

c# - 別のメソッドが呼び出されたときにメソッドを呼び出す

これはばかげた質問かもしれませんが、ここに行きます。

次の問題があります。

MyBaseClassには、それを継承するクラスでSomething()メソッドが呼び出されたときに呼び出す必要があるメソッドがあります。

この背後にある考え方は、退屈な企業上の理由でこのメソッドが呼び出されたときにログを記録する必要があるということです。開発者が自分でメソッドを呼び出すのではなく、メソッドが呼び出されたときに自動的に監査する基本クラスが必要です。

このようなことは達成できますか?もしそうなら、どのように?

部分メソッドを検討しましたが、それには同じ名前のクラスが必要であり、このシナリオでは不可能です。