問題タブ [out]
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.
wcf - 4 つの入力パラメーターと 3 つの出力パラメーターを持つ WCF サービスは、プロキシ クラス プロジェクトのサービス参照の追加によって並べ替えられます。
私はSOや他の場所を見て、これについて提起された質問と、私の場合はまだ意味をなさないいくつかの回答を見てきました。
次のものを持つ作業中の VStudio 2010 ソリューションをリファクタリングしています。
- ASMX Web サービスを使用する 1 つのプロジェクト
- プロキシ クラス用の別のプロジェクト ( Web 参照の追加によって生成されるものを除いて、ここにはコードはありません)
- クライアント用の別のプロジェクト (ProxyClass.dll への参照を含む)
新しい VStudio 2010 ソリューションには次の機能があります。
- コントラクト自体のタイプ WCF サービス ライブラリの 1 つのプロジェクト ( IFileService.cs ) コントラクトの実装のためのタイプ WCF サービス ライブラリの 1 つのプロジェクト ( FileService.cs )
- プロキシ クラス用の別のプロジェクト ( Add Service Referenceによって生成されるものを除いて、ここにはコードはありません)
- クライアント用の別のプロジェクト (WCFProxyClass.dll への参照を含む)
以下は、3 つの out パラメータで終了するコントラクトです (同じ実装は同じ順序です)。
私のプロキシクラスプロジェクトで生成されたサービス参照の追加は次のとおりです。
「WCF で out parms を使用することはできません」から「Add Service Reference を使用するべきではなく、代わりに svcutil.exe を使用する」から「パラメーターの順序は関係ありません...それでも機能します」までの範囲の回答を読みました。
私はここで何をすべきかについて混乱しています (そして、この再配置された順序となぜそれが起こったのか) につながった私が間違ったことをしました)。
c++ - ポインターからポインターへの参照とポインターへの参照の違い (C++)
インターフェイス ポインターを使用する COM コードが少しあります。コードの元の作成者は、次のようなインターフェイス ポインターを返す関数を実装しました。
従来の代わりに
関数 (1) は次のように呼び出されます。
これは間違いなく間違っているように見えますが、正常に動作します。out パラメーターが出力変数へのポインターではないため、またはこのアプローチに問題があるため、この行を取り上げているだけなのかどうかはわかりません。
出力パラメータにポインタからポインタへの代わりに参照からポインタを使用する利点はありますか?
windows-phone-7 - アプリケーションをタイムアウトするにはどうすればよいですか?
ユーザーがアプリケーションで選択するタイムアウト値の後に、ユーザーにPIN入力画面を表示する必要があるという要件があります(たとえば、ユーザーはタイムアウトを選択します)。私がやろうとしていることは、非アクティブ化されたイベントの現在の時刻を書き留めることです。アクティブ化されたイベントでは、モバイルで設定された時間差+タイムアウトを計算します。差がタイムアウトを超える場合は、ピン画面を表示します。それ以外の場合は表示しません。
しかし、私の質問は、モバイル設定画面で設定されたオプションである「画面がタイムアウトした後」の値をどのように取得するかです。
c# - 型制限なしでジェネリック out-parameter を使用する方法
問題は次のとおりです。ジェネリック型の出力パラメーターを持つジェネリック関数が必要です。ジェネリック型をref型に限定すればもちろん問題ありません。しかし、私は完全に無制限のジェネリック型が欲しかったのです! new() や class/struct-restrictions はありません!
上記のコードは、私がやりたいことを示しています。out パラメータを設定したいのですが、描かれているものと同様の条件下でのみです。の偽のケースでは、Test(...)私は の値にまったく興味がありませんout t。しかし、上記はもちろん機能するコードではありません。上記の問題は、outパラメーターを初期化する必要があることです。しかし、おそらく初期化は高価な場合があり(のタイプによって異なりますT)、コンパイラが文句を言わないようにするためだけにダミークラスインスタンスを初期化したくありません。したがって、質問は次のようになります:不明な型をどのように初期化しますか (また、それがクラスの場合は null に初期化されていることを確認します)??
理論的には、次のようなものを書くことができるはずです
しかし、残念ながら、それはそれほど単純ではありません。最初の問題は、T が値型の場合、それを作成できるはずですが、コンパイラが許可しないことです。2 番目の問題も同様です。「値型である可能性があります!」- いいえ、そうではないことを確認しました。動作するはずですが、動作しません。とてもうるさい。
Ok。そこで、私たちは創造性を発揮し始めます...結局のところ、Object と呼ばれるこの素晴らしいクラスがあり、C# っぽいすべてのものと特別な関係があります。
これは少なくともコンパイルされます。しかし、それはまだゴミです。ランタイムエラーが豊富。値型の問題は、オブジェクト型が実際の型を覚えていて、何か他のものにキャストしようとすると...奇妙なことが起こることです(無限?本当に??)まあ、これはうまくいくはずです! だから、もっとクリエイティブになりましょう!
それは正しい!ばかげた取るに足らない変更に見えます...しかし、これはコンパイルされます-そして、非値型の場合、これが実行され、まさに私たちが望む結果が得られます! T が参照型の場合、null に初期化されます。値型の問題はまだあります。ややしぶしぶ創造性は、リフレクションに注意を向けます。リフレクション関連のものをランダムに掘り下げて、試してみる価値のあるものを探した後 (いいえ! 値型のコンストラクターを取得できず、null を返します)、msdn に関する小さなメモに出くわしました:
「インスタンス コンストラクターを持たない値型のインスタンスを作成するには、CreateInstance メソッドを使用します。」
入力CreateInstance<T>()- http://msdn.microsoft.com/en-us/library/0hcyx2kd.aspx。
「CreateInstance ジェネリック メソッドは、型パラメーターで指定された型のインスタンス化を実装するためにコンパイラによって使用されます。」
今、私たちはどこかに到達しています!確かにそれは言う
「一般に、アプリケーション コードで CreateInstance を使用することはありません。これは、型がコンパイル時に認識されている必要があるためです。コンパイル時に型が認識されている場合は、通常のインスタンス化構文を使用できます (C# の new 演算子、Visual Basic の New 、C++ では gcnew)」。
しかし、まあ、私たちは一般的なことをまったく行っていません。私たちは創造的なモードにあり、コンパイラは私たちに対して不機嫌です。試してみることを完全に正当化します。
そしてバム!それだけでした!それは完全にうまく機能します!以下は、VS2010SP1 と MonoDevelop (Unity3.4 を使用) の両方でテストおよび実行されたコードの一部です。
システムを使用する;
そして輝かしい「出力」(locals-panel @ breakpoint から):
値とクラス型を含む構造体も美しく処理されます。値型は 0、クラス インスタンスは null です。 任務完了!
c# - パラメータなしで追加変数なしのメソッド呼び出し?
重複の可能性:
C# でパラメーターを無効にしますか?
特定のメソッドを呼び出しているときに、メソッド シグネチャのすべての値に関心がない場合があります。次に、デフォルト値または null 値を使用します。
ただし、メソッド シグネチャでoutまたはref参照の場合、このメソッドに渡すダミー変数を常に定義する必要があります。
それで、私の質問は、この変数を何らかの形で排除し(決して読み取らないことによって割り当てられます!)、outパラメータを必要とするメソッドを正しく呼び出すことができるかどうかです。
c++ - 事前にtxtファイルにバイナリツリーを書き込む
二分木から物事を書く関数があります。実行すると、ツリーのルートがtxtに書き込まれるだけです。誰かがここで何が悪いのか教えてもらえますか?
scala - C# の out と Scala の ref を模倣する -- 機能を使用する準備はできましたか?
限られた意味では、自分でクラスを作成するのは非常に簡単ですが、私の質問はそれを行う方法ではありませんが、outすぐに使用できる機能 (またはクラス) はありますか?ref
私が見つけた最も近いものはReference特性です(しかし、それは特性です)。
ref/out だけが if の連鎖をエレガントにするので、純粋な結果として、タプルでも、オプションでも、どちらでもなく、それらが必要です。
exception - C# インデックス範囲外例外
C# 2008 に問題があるようです。特定のフォルダー内のすべてのファイルのリストを表示する単純なプログラムを作成しています。Windows フォルダー内のシステム ファイルを試してみることにしました。ファイルのリストが表示され、例外が発生します。コードは次のとおりです。
したがって、ユーザーが番号 1 を押してファイルを表示すると、リストに表示されます。Windows フォルダ内のファイルが表示されます。しかし、コンソールの書き込み行にいくつかの情報が表示されているのがわかりますか? エラーに対するメッセージを含む行が表示されます。インデックスが配列の境界外にあるという例外が発生します。配列とは何かは知っていますが、その情報を適用するのに問題があります。このエラーを取り除く方法を教えていただければ幸いです。そのため、リストの長さに関係なく、ファイルは正常に表示されます。また、ユーザーが画面をクリアしてメイン メニューに戻ることを許可する方法はありますか? clear 関数を試してみましたが、ユーザーが選択を再度入力できるようにする if ステートメントを追加し続ける必要がありますか?
c++ - Opencv DMatch 距離が範囲外
http://opencv.itseez.com/doc/tutorials/features2d/feature_homography/feature_homography.html#feature-homographyに従って、FlannBasedMatcher を使用しています。この行を実行するたびに「ベクトル添え字が範囲外です」というエラーが表示されます「 double dist = matches[i].distance; 」私はかなり長い間ここで立ち往生しています..
c# - 出力パラメーターと例外
次のコードがあるとします。
テストすると、s「fjuk!」に初期化されました。catchブロックで使用する場合。
これは仕様によって保証されていますか、それとも実装に依存していますか? (C# 3 仕様を検索しましたが、自分で見つけることができませんでした)