問題タブ [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 投票する
3 に答える
3182 参照

sql - linq から sql クエリに返すことができる列を指定する方法

linq から sql クエリへのいくつかの列のみを返そうとしていますが、そうすると例外がスローされます。

クエリでのエンティティ タイプ 'InVision.Data.Employee' の明示的な構築は許可されていません

コードは次のとおりです。

すべてを返すと、JavaScriptで使用するにはシリアル化する必要があるため、循環参照に関する例外がスローされるため、列を制限する必要があります...これを解決するために私に与えることができるヒントをありがとう。

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

c++ - 複数引数コンストラクターの明示的なキーワード?

私は最近、3 つのコンストラクタを持つ奇妙なクラスに出くわしました。

これは私にはあまり意味がありません。明示的なキーワードは、コンパイラが選択した構造を外部の型から保護するためのものだと思いました。

これは許されますか?もしそうなら、それはどういう意味ですか?

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

c# - 明示的および暗黙的なC#

私はC#に不慣れで、新しい単語を学んでいます。c#のプログラミングに関して、これら2つの単語の意味を理解するのは難しいと思います。私は辞書で意味を調べました、そしてこれが私が得たものです:

暗黙

「暗黙の何かは間接的な方法で表現されます。」

「品質または要素が何かに暗黙のうちに含まれている場合、それはそれに関与しているか、それによって示されます。」

明示的

「明示的なものは、何も隠そうとせずに、明確かつオープンに表現または表示されます」

「あなたが何かについて明白であるならば、あなたはそれについて非常に率直にそしてはっきりと話します。」

C#で理解したいと思います。

ご協力いただきありがとうございます。

乾杯


追加情報:

これが私が今読んでいる本の文章の一部で、この単語は「暗黙的」です。

「これは、内部のAreaとOccupantsが、を呼び出すオブジェクトで見つかった変数のコピーをAreaPerPerson( ) 暗黙的AreaPerPerson( )に参照することを意味します。」

私はここでこの文が何を言おうとしているのか全く理解していません。

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

c# - オブジェクト以外のフィールドエラーによって正しく位置合わせされていないか、オーバーラップしている

次の構造を作成しようとしています。

次のエラーが発生します。

タイプ「メッセージ」をアセンブリからロードできませんでした。これは、オフセット4にオブジェクトフィールドが含まれているため、オブジェクトフィールドが正しく配置されていないか、非オブジェクトフィールドとオーバーラップしています。

なぜこれがエラーを引き起こしているのか誰かが知っていますか?

注:コンパクトフレームワークを使用しているため、Packを使用できません。ありがとう。

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

c++ - DLLの明示的なロード

DLLと明示的にリンクしようとしています。DLLファイル自体と、クラスとそのメンバー関数に関するいくつかのドキュメントを除いて、他のリソースは利用できません。

ドキュメントから、各クラスには独自のクラスが付属しています

  1. メンバーtypedefの
    例:typedef std::map<std::string,std::string> Server::KeyValueMap, typedef std::vector<std::string> Server::String Array
  2. メンバー列挙の
    例:enum Server::Role {NONE,HIGH,LOW}
  3. メンバー関数の
    例:void Server::connect(const StringArray,const KeyValueMap), void Server::disconnect()

グーグル検索からのコードを実装して、私はdllをロードすることができ、切断関数を呼び出すことができます。

dir.h

上記の関数名はdepends.exeから取得しました。これは、C ++で装飾/マングルされた関数名と呼ばれるものですか?

main.cpp

dll自体でパラメータデータ型が宣言されている 接続メンバー関数を(たとえば)呼び出すにはどうすればよいですか?

編集

より詳しい情報:

  • DLLには、Javaを使用した実装例が付属しています。Javaの例には、SWIGとソースコードを使用して生成されたJavaラッパーが含まれています。
  • ドキュメントには、すべてのクラス、それらのメンバー関数、およびそれらのデータ型がリストされています。ドキュメントによると、リストはC ++ソースコードから生成されました。(??)
  • 他の情報は提供されませんでした(DLLの生成に使用されたコンパイラに関する情報はありません)

私の同僚は、与えられたJavaの例に基づいてJavaを使用してインターフェースを実装していますが、C++を使用して実装するように依頼されました。DLLはサードパーティの会社のものです。

コンパイラについて聞いてみます。私が彼らから得るべき他の情報はありますか?

JNIについて簡単に説明しましたが、この場合の実装方法がわかりません。

アップデート

私は少し混乱しています...(わかりました、わかりました...非常に混乱しています)

  1. (GetProcAddress)を使用する場合にのみ、各パブリックメンバー関数を個別に呼び出しますか?
  2. dll内のクラスを模倣するダミークラスを作成しますか?次に、クラス定義内で、DLLから同等の関数を呼び出しますか?(私はここで意味がありますか?)fnieto、これはあなたがあなたの投稿の最後に私に見せているものですか?
  3. DLLからクラス全体をインスタンス化することは可能ですか?

最初の投稿で説明した接続機能を使おうとしていました。Depends.exe DLLの出力から、

  • std :: map // KeyValueMapには次のメンバー関数があります:del、empty、get、has_1key、set
  • std :: vector // StringArrayには次のメンバー関数があります:add、capacity、clear、get、isEMPTY、reserve、set、size

これは、私のコンパイラ(VS 2005)のmapおよびvectorのメンバー関数とは異なります。

何か案が?または私はここで間違った写真を撮っていますか...

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

dll - 実際の .dll 実装があるのに、なぜ .lib スタブ ファイルが必要なのですか?

実際の実装コードを取得した実際の .dll ファイル内の情報を参照するだけでは、なぜリンカは自分の仕事を実行できないのでしょうか? つまり、暗黙のリンクを行うためにリンカがまだ .lib ファイルを必要とするのはなぜですか?

このようなリンクには、エクスポート テーブルと相対アドレス テーブルだけで十分ではありませんか?

とにかく.libスタブ/プロキシファイルなしで.dllのみを使用して暗黙的なリンクを行うことができるものはありますか?

Windows実行可能ローダーは、プログラムに代わってLoadLibrary/LoadLibraryEx呼び出しを実行するだけだと思いました(したがって、暗黙的なリンクという名前です)。これは、明示的なリンクとの主な違いです。それが本当なら、.libなしで明示的にそれを行うことは、それがなくても暗黙的に実行可能であることを示しているはずですよね? または私はナンセンスを言っているだけですか?

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

c# - 明示的なキャストの問題

質問:テストでは、次のエラーが発生します。鋳造の解決策は何でしょうか?

タイプ「AContainer」を「IContainer」に暗黙的に変換することはできません。明示的な変換が存在します(キャストがありませんか?)

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

wpf - Binding UpdateSourceTrigger=Explicit、プログラムの起動時にソースを更新

私は次のコードを持っています:

テキストボックスで「Enter」キーが押されたときだけソースを更新したい。これはうまくいきます。ただし、バインディングはプログラムの起動時にソースを更新します。どうすればこれを回避できますか? 何か不足していますか?

0 投票する
4 に答える
1311 参照

c# - 暗黙の変換から例外をスローする言い訳はありますか?

MSDNから:

不要なキャストを排除することで、暗黙的な変換によってソース コードの読みやすさが向上します。ただし、暗黙的な変換はプログラマが指定しなくても発生する可能性があるため、不愉快な驚きを避けるために注意する必要があります。一般に、暗黙的な変換演算子は、プログラマーが意識しなくても安全に使用できるように、決して例外をスローしたり、情報を失ったりするべきではありません。変換演算子がこれらの基準を満たさない場合は、明示的とマークする必要があります。

私は特定の点に同意しませんが、これはすべて非常に良いことに同意しますが、暗黙の変換が例外をスローしないという部分を破るのに十分な理由はありますか?

私の前にある特定のケースは、次の場合です。

  1. カスタム コレクション オブジェクトを返す関数があります (これを と呼びますFooCollection)。
  2. この関数は、単一のアイテムを持つコレクションを返すことができ、これが発生するかどうかはソース コードから判断できます。(これは、関数自体ではなく、関数呼び出しのみを意味します)
  3. それが起こった場合、ユーザーが 1 つのアイテムのコレクションではなく、その 1 つのアイテムを望んでいる可能性は 99.9% です。

FooCollectionここで、 =>からの暗黙的な変換を含めて、Fooこの小さな実装の詳細を隠すかどうかを検討していますが、この変換は、コレクションに単一のアイテムがある場合にのみ機能します。

Exceptionこの場合投げても大丈夫ですか?または、代わりに明示的なキャストを使用する必要がありますか? これに対処する方法について他のアイデアはありますか (いいえ、実装の詳細のため、2 つの関数だけを使用することはできません)。

編集:FooCollectionインターフェイスを実装していないか、名前が示すように実際に拡張していないことに注意する価値があると思いますCollection。したがって、LINQベースの回答は役に立ちません。また、コレクションは数値インデックスを実装していますが、ほとんどが名前付きインデックスに依存しているため、コレクションを処理する最も直感的な方法ではありません。