問題タブ [dynamic-method]
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# - C#でメソッドを動的に呼び出す
私はたくさんのエンティティクラスを持っています、そして今、エンティティクラスのすべてのプロパティでゲッターとセッターに新しい機能を追加する必要があります(いくつかのメソッドを呼び出します)。私が言いたいことは次のようになります:
}
さまざまなタイプのフィールドについて、さまざまなメソッドを呼び出す必要がありrefreshContents()
ますrefreshContetns("fieldName")
。IoCと依存性注入の問題を解決しようとしています。私を手伝ってくれますか?
c# - 式ツリーを使用してオブジェクトのすべてのプロパティを比較する
式ツリーを使用して、あるタイプのインスタンスのすべてのプロパティをそのタイプの別のインスタンスのプロパティと比較するメソッドを動的に生成する単純なジェネレーターを作成しようとしています。int
これは、などのほとんどのプロパティで正常に機能しますが、 (およびおそらく他のnull許容値タイプ)string
では失敗します。DateTime?
方法:
DateTime?
プロパティでは、次のように失敗します。
タイプ'System.Nullable`1[System.DateTime]'の式は、メソッド'Boolean Equals(System.Object)'のタイプ'System.Object'のパラメーターには使用できません。
Equals
OK、それでそれはそれが期待する過負荷を見つけobject
ます。それで、DateTime?
それがに変換可能であるので、なぜ私はそれに渡すことができないのobject
ですか?私が見るとNullable<T>
、それは確かにのオーバーライドを持っていますEquals(object o)
。
PS:値を処理できないため、これはまだ適切なジェネレーターではないことに気付きましたが、それnull
については説明します:)
更新:Iraklisの答えはこの特定の問題に対しては機能しましたが、最終的には、私が十分だと思うはるかに単純なアプローチを採用しました。単にを使用してExpression.Equal
ください。私の場合の99%をカバーしていると思います(オーバーライドEquals
せずにオーバーライドを処理できるかどうかはわかりませんが、問題ありません==
)。
grails - Grails ドメイン クラスに static get メソッドがありません
grails を使用した本番環境では、次のエラーが断続的に発生します。指定されたドメイン クラスの get メソッドがないと表示されます。これは、毎分約 300 回実行されるコードで数日に 1 回発生します。再現できませんでした。
他の誰かがこの問題に遭遇しましたか? grails 1.3.6 を使用しています。ドメイン クラスの ID は gorm のデフォルトです。Sun jvm バージョン 1.6.0_17-b04 を実行しています。
アップデート:
今日エラーが発生したときにもう少し知りました。JMS grails プラグインを使用していますが、JMS メッセージを受信しているクラスの 1 つでエラーが発生します。grails がアプリケーションのブートストラップを完了する前に、JMS プラグインがメッセージの配信を開始したようです。grails の起動時にキューにメッセージがある場合、ログに例外が表示され始めます。grails が完全に開始されると、エラーは停止し、メッセージは正常に処理されます。私の推測では、ドメイン クラスに動的メソッドが追加される前に、grails 内のスプリング コンテキストが開始されます。
ruby - Rubyはハッシュからメソッドを作成します
ハッシュコレクションをクラスのメソッドに変換するために使用している次のコードがあります(アクティブレコードのようなものです)。私が抱えている問題は、セッターが機能していないことです。私はまだRubyに慣れていないので、少し振り返ったと思います。
メソッドが作成され、クラスで読み取ることができますが、設定しても機能しません。
java - これはダイナミックディスパッチですか?
これは動的ディスパッチですか:
完全に別のクラスで:
動作が両方のサブクラスで同じであるため、これが動的ディスパッチであるかどうかはわかりませんか?
そうでない場合、動作がサブクラスごとに定義されている場合、動的ディスパッチになりますか?
ruby - Railsアソシエーションを使用したRubysendメソッド
私はソート可能なテーブルモジュールのものを作ることをいじっています。いくつか存在するかもしれないことは知っていますが、これを自分でやって経験したいと思っています。私はそれをそのようにするという考えを持っていました:
例
私は次のようなことを計画しています:
これはタイトルと本文には問題なく機能しますが、withitを取得するLast Comment
場合はcomment.last.title
エラーになります。私はやってみPost.send("comments.last.title")
ましたが、言いますNoMethodError: undefined method 'comments.last.title' for #<Post:0x0000010331d220>
私はできることを知っていますがPost.send("comments").send("last").send("title")
、それは機能しますが、フィールドを取得してonを分割することによって動的にそれを行う方法を考えることはできません。次に、送信をチェーンします。誰かがこれを行う方法について私にアドバイスを与えることができますか?私がこれを完全に間違って行っている場合も、同様のことを行うコードの方向に私に言ってください。私は専門家のルビー開発者ではありませんが、努力しています。
PS上記のコードは、テストするRuby / Railsを備えたコンピューターを使用していないため、機能しない可能性がありますが、うまくいけば、概念を理解できます。
乾杯
javascript - Javascript:文字列データからメソッドを動的に構築する方法は?
特定のデータに対して実行するアクションのリストであるタスクを定義する XML ドキュメントがあります。この「タスク リスト」を、後で呼び出すことができる Javascript メソッドに変換する必要があります。このメソッドは、適切なデータを使用して一連の事前定義されたメソッドを呼び出します。どうすればこれを達成できますか?
重要な説明:
XML の解析については心配していません。重要なデータを定義済みのアクション メソッドにバインドするなど、タスク メソッドを実際に構築する方法に興味があります。それは私が苦労している部分です。
編集:例を修正して、もう少し面白くし、できればもう少し明確にしました。
XML:
Javascript:
ノードを呼び出すparseTask()
と、呼び出されたときに実際に次のことを行う関数が作成されます。<task id="enter-castle">
.net - 動的メソッドとは何ですか? DynamicMethod は MethodBuilder とどう違うのですか?
リフレクション ベースの C# コードで動的メソッドに少し遭遇しましたが、それらが何であるかはまだ正確に把握していません。具体的DynamicMethod
には、実行時に CLR メソッドの生成と指定を可能にするクラスがあるようです。MethodBuilder
しかし、それからクラスもあります。どちらも非常に似たようなことをしているようです。どうやら「動的アセンブリ」はAssemblyBuilder
クラスであり、「動的型」はTypeBuilder
クラスです。いずれにせよ、それらはすべてSystem.Reflection.Emit
名前空間に存在します。
MSDN には、この件に関する高レベルの貴重な情報がほとんどないようです。したがって、誰かが動的メソッドとは何か、ここですべてのXYZBuilder
クラスが正確にどこで機能するのか、そしてそれぞれが何のために使用されるのかを説明できれば、それは素晴らしいことです. 私が知っておくべきその他の Reflection.Emit の型と機能も高く評価されます。
python - Python の動的ランタイム メソッド
screening_instance.get_omit_1 、screening_instance.get_omit_2 から screening_instance.get_omit_10 までアクセスしたい。get_omit_1、get_omit_2.. get_omit_%d のような各ケースのメソッドを作成せずにこれを行うより良い方法はありますか??
実行時に動的関数を作成しようとしましたが、問題がありました。私はこのようなことを試しました: