問題タブ [explicit]

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 投票する
5 に答える
2673 参照

.net - Generic.IList 間の呼び出しのあいまいさを解決する方法.this[] と IList.this[]?

IList<T> と List の両方を拡張するインターフェイスを実装するコレクションがあります。

つまり、2 つのバージョンのインデクサーがあるということです。

一般的な実装を使用したいので、通常どおり実装します。

シリアライゼーションには IList バージョンのみが必要なので、明示的に実装して隠しておきます。

ただし、私の単体テストでは、次の

コンパイラ エラーが発生する

次のメソッドまたはプロパティ間の呼び出しがあいまいです

これには少し驚いています。私は以前にそれをやったと信じており、うまく機能しています。ここで何が欠けていますか?IList<T> と IList を同じインターフェイス内に共存させるにはどうすればよいですか?

Edit IList<T> はIList を実装していないため、シリアル化のために IList を実装する必要があります。回避策には興味がありません。不足しているものを知りたいです。

もう一度編集: インターフェイスから IList を削除して、クラスに移動する必要がありました。インターフェイスを実装するクラスは最終的に Xaml にシリアル化されるため、IDictionary または IList を実装するコレクションが必要になるため、これを行いたくありません...

0 投票する
10 に答える
1032194 参照

c++ - 明示的なキーワードの意味は何ですか?

explicitC++ でのキーワードの意味は何ですか?

0 投票する
8 に答える
21671 参照

c++ - メソッド パラメーターの自動変換を防ぐためにキーワード explicit を使用できますか?

クラスのコンストラクターに C++ キーワード 'explicit' を使用して、型の自動変換を防止できることは知っています。この同じコマンドを使用して、クラス メソッドのパラメーターの変換を防止できますか?

2 つのクラス メンバーがあり、1 つは bool をパラメーターとして取り、もう 1 つは unsigned int を受け取ります。int で関数を呼び出すと、コンパイラは param を bool に変換し、間違ったメソッドを呼び出しました。最終的に bool を置き換えることはわかっていますが、今のところ、この新しいルーチンが開発されているため、他のルーチンを壊したくありません。

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

sql - FOR XML の明示的なパフォーマンスの向上

SQL FOR XML EXPLICIT を使用するのは面倒ですが、私は頻繁に使用しています。生成された XML ドキュメントを完全に制御できるためです。

私の問題はパフォーマンスにあり、わずか 1 か月分の財務データ (請求書、請求書など) を記述した XML ドキュメントを生成するのに 5 分以上かかることがあります。

そこで、パフォーマンスを改善するためのヒントを探していました。または、パフォーマンス上の利点を与える他の方法で置き換えることもできます。

0 投票する
5 に答える
2268 参照

c# - AC#クラスが暗黙的および明示的に1つのインターフェイスから継承できるのはなぜですか?

今日、私は1つのC#クラスが暗黙的および明示的な方法の両方で1つのインターフェイスを継承できることに気付きました。これは私を驚かせます。C#がこのように機能する場合、1つのインスタンスは、異なる方法で参照されたときに異なる動作をする可能性があります。

上記のコードが実行され、出力されます

このC#の設計は、動作の不整合を引き起こすと思います。おそらく、1つのC#クラスが暗黙的または明示的な方法で1つのインターフェイスから継承できることが必須ですが、両方を継承することはできません。

C#がそのように設計されている理由はありますか?

0 投票する
5 に答える
3007 参照

c++ - コンパイラが L"" の暗黙的な型キャストに文字列ではなく bool を選択するのはなぜですか?

最近、メソッドのオーバーロードが導入されたため、アプリケーションが失敗し始めました。最後にそれを追跡すると、新しいメソッドが予想外の場所で呼び出されています。

我々は持っていた

bool 値が格納されるときに同じ文字列を使用するように変更されました (文字列の内部データ ストレージ)。

L"" の問題は、それが暗黙的にキャストされることであり、以前は std::wstring であることを喜んでいましたが、bool であることは好まれませんでした。MSVC コンパイラは文句を言ったり、警告を発したりしないので、setValue( L"empty", L"" ); することが

他の誰かが後で来て、単に setValue( L"empty", L"" ); を使用する可能性があります。この問題をもう一度追跡する必要があります。

メソッドで明示的に使用することを考えましたが、この使用法では有効なキーワードではありません。コンパイラにこれについて不平を言う、または問題を防ぐ方法はありますか? それ以外の場合は、bool を取るメソッドの名前を変更して、間違った推測ができないようにすることを考えています。

0 投票する
5 に答える
1302 参照

c# - 文字列と整数、暗黙的および明示的

同僚が私にこれを尋ねた場合、私の頭が混乱した状態で、答えがありませんでした:

あなたができるのはなぜですか:

だがしかし:

を連結するときに文字列変換の暗黙のキャスト/操作がある場合、それを文字列として割り当てるときに同じではないのはなぜですか? (もちろん、演算子のオーバーロードを行わずに)

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

c# - インターフェイス構成を使用した奇妙なインターフェイス ポリモーフィズム

私が取り組んでいるプロジェクトで、次のコードのようなものになりました。私はそれを許されたことは本当に奇妙だと思いましたが、今では、私の側の建築上の失敗が私をこれに導いた可能性が最も高いのだろうかと考え始めています.

あなたへの私の質問は次のとおりです。

  • これは正確には何と呼ばれていますか?
  • これは実際にどのような用途に使用されていますか?
  • なぜ誰もがこれをやりたいのですか?

ここに私のインターフェースがあります:

ここに私の具象クラスがあります:

そして私の合格テスト:

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

android - Android オーバーライド明示的インテント

私のアプリには、コンポーネント セット (明示的なインテント) を持つ に intent-filter応答するが必要です。以下に例を示します。Intent

は特定のコンポーネント ( ,) 用に作成されているintent-filterため、インテントをまったく検索せずに起動するだけです。これを行う方法はありますか? ありがとう、Isaac Waller PS: 「いいえ」と答えないでください。IntentActivity