問題タブ [interface-implementation]
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.
undo - トランザクションデータベースで元に戻す
トランザクションデータベースを使用して、ユーザーフレンドリーなインターフェイスのundoプロパティを実装する方法がわかりません。
一方では、ここで回答に記載されているように、ユーザーにはマルチレベル(無限)の取り消しの可能性があることをお勧めします。この問題に役立つ可能性のあるパターンは、Memento またはCommandです。
ただし、トリガー、増え続けるシーケンス番号、元に戻せない手順などの複雑なデータベースを使用すると、トランザクションの境界とは異なるポイントで元に戻すアクションがどのように機能するかを想像するのは困難です。つまり、最後にコミットされたトランザクションが単なるロールバックである時点まで元に戻しますが、どのようにして別の瞬間に戻ることができますか?
更新(これまでの回答に基づく):変更が既にコミットされているときに元に戻るが機能することを必ずしも望んでいません。トランザクションが開いている実行中のアプリケーションに焦点を合わせます。ユーザーが[保存]をクリックするたびにコミットを意味しますが、保存する前に(同じトランザクション中に)元に戻るが機能するはずです。データベースを永続層として使用することは単なる実装の詳細であり、ユーザーはそれを気にする必要がないことを私は知っています。しかし、「データベースとGUIで元に戻すという考え方は根本的に異なる」と考え、データベースで元に戻るを使用しない場合、無限の元に戻すは単なる流行語にすぎません。「ロールバックは...ユーザーによる取り消しではない」ことを私は知っています。
では、同じトランザクション内で「変更の結果としてのカスケード効果」を考慮して、クライアントレベルの取り消しを実装するにはどうすればよいでしょうか。
c# - インターフェイスを実装する C# 継承された保護されたメソッド
私はC#でこのクラス/インターフェース定義を持っています
次に、IBar を実装する FooBase から派生したクラス Foo1 を作成します。
コンパイラが継承された保護されたメソッドを、公開されているアクセス可能なインターフェイスの実装として受け取るクラス宣言の魔法はありますか?
もちろん、Foo1 メソッド
動作します。ショートカットがあるかどうかだけ知りたいです;)
このメソッドを省略すると、コンパイラ エラーが発生します。Foo1 はインターフェイス メンバ IBar.Bar() を実装していません。FooBase.Bar() が static であるか public でないか、戻り値の型が間違っています。
説明: コードの継承 (クラス階層) と機能の実装 (インターフェース) を分離します。したがって、同じインターフェイスを実装するクラスの場合、共有 (継承) コードにアクセスすると非常に便利です。
c# - インターフェイスのメソッドの実装をすばやく見つける方法は?
インターフェイスのメソッド/プロパティ/などへの参照ではなく、すべての実装をすばやく見つける方法はありますか? サンプルコードは次のとおりです。
SomeOtherClass.TestMethod() を確認しながら、SomeClass.GetInt() にすばやく到達したいと考えています。_someClass.GetInt() を右クリックして [定義に移動] をクリックすると、インターフェイスに移動します。[Find All References] をクリックすると、GetInt() メソッドを実装するクラスだけでなく、すべての使用のリストが表示される可能性があります。
これを見つけるためのより速い方法はありますか?他の開発者からのヒントはありますか? 依存関係のほとんどに DI を使用しています。つまり、深くネストされたコードをトレースするには永遠に時間がかかります。
c# - リフレクションなしでメソッド宣言を呼び出す
サブクラスのセット(productorder、specialorder、partsorderなど)を持つ基本クラス(注文)があります。
これらのサブクラスの一部のみが、単一のメソッド宣言 (オブジェクト getcustdetails()) を持つ特定のインターフェイス (ITrackingCustomer) を実装します。
私のソリューションの一部として、すべての注文は中央の場所で処理されます。つまり、すべてのクラッド メソッドは中央のレイヤーを通過します。この中央レイヤー内で、次のことを行います。
注文のタイプが ITrackingCustomer の場合
次に、メソッド getcustdetails() を呼び出します
次のコードを使用してこれを機能させています。
isassignablefrom を使用した最初の部分には満足していますが、2 番目の部分 (つまり、invoke を使用したリフレクション) では、パフォーマンスをあまり重視しない方法を使用したいと考えています。
私の質問は:
呼び出しコマンドを使用するとコストがかかることを読んだので、これを行うより効率的な方法はありますか。
java - コレクションを入力として受け取るメソッドに ArrayList を渡す方法
入力として受け取るメソッドにArrayList<Integer>
Xを渡したいと思います。a(Collection<Integer> someCol)
Collection<Integer>
これどうやってするの?ArrayList は Collection だと思ったので、「それを行うだけ」できるはずですが、Collection はインターフェイスであり、ArrayList はこのインターフェイスを実装しているようです。この作業を行うために私にできることはありますか...理論を理解していれば、私や他の多くの人にも役立つでしょう。
ありがとう
c# - エラー:リスト'System.Collections.Generic.IEnumerableと一致するものがありません
リストを使用してインターフェースメンバー「f」を実装するにはどうすればよいですか?
エラー1'ClassLibrary1.C'はインターフェイスメンバー'ClassLibrary1.If'を実装していません。「ClassLibrary1.Cf」は、「System.Collections.Generic.IEnumerable」の一致する戻りタイプがないため、「ClassLibrary1.If」を実装できません。c:\ users \ admin \ document \ visual studio 2010 \ Projects \ ClassLibrary1 \ Class1.cs
.net - ConcurrentDictionary、INotifyCollectionChanged、INotifyPropertyChanged を使用してカスタム監視可能なコレクションを作成する方法
ObservableConcurrentDictionary を作成しようとしています。このオブジェクトはマルチスレッド アプリケーションで使用され、そのデータは、コントロールの ItemsSource プロパティを介してコントロールに入力するために使用されます。
これは私が思いついた実装です:
残念ながら、このソリューションは意図したとおりには機能しません。実際、まったく機能しません。私が間違っていること、またはより良い解決策が存在することについてのアイデアはありますか?
私は ObservableCollection を使用できないことに注意してください。そのため、独自の Observable コレクションを作成する必要があります。
編集:作業バージョンは以下です。これが同様の問題を抱えている他の人に役立つことを願っています。
c# - いくつのインターフェースを実装できますか?
C# の場合:
クラスが同時に実装できるインターフェイスの数は?
Nに制限はありますか?
そのようなオブジェクトを実装したり保守したりしたくないので心配しないでください。限界があるのかな?と思いました。
c# - すべての配列が C# で実装するインターフェイスは何ですか?
新しい .NET 3.5 プログラマとして、LINQ の学習を開始したところ、これまで気付かなかった非常に基本的なことがわかりました。
この本は、すべての配列が実装されていると主張していますIEnumerable<T>
(明らかに、そうでなければ配列上のオブジェクトに LINQ を使用できませんでした...)。これを見たとき、私はそれについて本当に考えたことはなかったと思い、すべての配列が他に何を実装しているかを自問しました。そこで
System.Array
、オブジェクト ブラウザーを使用して調べました (これは CLR のすべての配列の基本クラスであるため)。驚いたことに、それは実装されていませんIEnumerable<T>
。
だから私の質問は:定義はどこですか?つまり、すべての配列がどのインターフェイスを実装しているかを正確に知るにはどうすればよいでしょうか?
c# - 同じメソッドを定義する2つのインターフェースを実装するクラス
ここで、Main()メソッドで、インターフェイスメソッドが呼び出されるクラスabのオブジェクトを作成するときに、すべてを説明してください。