問題タブ [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.

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

c# - オブジェクト型に「ref」および/または「out」を使用する

私は .Net 1.1 アプリケーションに行き詰まっており (つまり、今のところ 2.0 のジェネリック機能を使用できません)、コードの一部を最適化しようとしていました。リリースする必要があるランタイム呼び出し可能なラッパーを多く扱うため、すべての参照がリリースされるまでループするユーティリティ メソッドを作成することになりました。メソッドのシグネチャは次のとおりです。

すべての comObjects を解放した後、GC.Collect と GC.WaitForPendingFinalizers を呼び出します (質問しないでください - Office の相互運用を扱っている人なら誰でも知っています)。

そして ... いつものように、まれなケースに遭遇します。GC.Collect 呼び出しの前に、対応するマネージド参照を null に割り当てないと、適切にクリーンアップされません。

したがって、私のコードは次のようになります。

xxx=null がたくさんあるので、これを util メソッドに入れることにしましたが、参照渡しと参照パラメーターの受け渡しには違いがあるため、明らかにメソッドを次のように変更する必要がありました。

呼び出し元を次のように編集します。

これは、「'out MyComClass' から 'out object' に変換できません」というメッセージで失敗します。

なぜそれが問題になるのか (つまり、オブジェクトから MyComClass へのリバース キャストは暗黙的ではなく、メソッドが何を行うか保証されていない) を考えることはできますが、回避策があるかどうかは疑問に思っていました。私の何百ものヌルの割り当てで。

注: 私はさまざまな COM オブジェクト タイプを持っているため、タイプ セーフではなく「オブジェクト」パラメータが必要です。

0 投票する
27 に答える
406732 参照

c# - 「ref」キーワードと「out」キーワードの違いは何ですか?

関数によって変更できるように、オブジェクトを渡す必要がある関数を作成しています。違いは何ですか:

どちらを使用する必要があり、その理由は?

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

c# - out 引数を明示的に破棄する方法は?

私は電話をかけています:

しかし、私は実際にはメッセージを気にしません。それが気にしない入力パラメーターである場合は、null を渡すだけです。それが私が気にしないリターンなら、私はそれをそのままにしておくだろう.

out で同様のことを行う方法はありますか、それとも無視する変数を宣言する必要がありますか?

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

c# - C#4.0では、メソッドのoutパラメーターを共変にできないのはなぜですか?

この魔法のインターフェースを考えると:

そして、このクラス階層:

これでコンパイルできます:

これは素晴らしいことです。しかし、インターフェースを別の方法で定義するとどうなりますか?

別のブール値の戻り値を使用して、帽子が空である可能性があることを示しています(以前のバージョンでは、空の帽子からnullのウサギが返された可能性があります)。しかし、私はまだウサギを出力しているだけなので、以前のバージョンと論理的に異なることは何もしていません。

CTPのC#4.0コンパイラでは、インターフェイス定義にエラーが発生します。「out」メソッドパラメータが不変型である必要があります。これが許可されない理由はありますか、それとも将来のバージョンで対処される可能性がありますか?

0 投票する
6 に答える
11650 参照

c# - C#出力パラメーターのパフォーマンス

C#の出力パラメーターには、知っておくべきパフォーマンスへの影響がありますか?(例外のように)

outつまり、1秒間に数百万回実行されるループ内のパラメーターを持つメソッドを用意するのは良い考えですか?

私はそれが醜いことを知っていますが、私はそれらを使用しているのと同じ方法でそれを使用しています-いくつかの検証が成功したかどうかを示すためにをInt32.TryParse返し、成功した場合はいくつかの追加データを含むパラメーターを持っています。boolout

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

c# - イテレータ メソッドが 'ref' または 'out' パラメータをとれないのはなぜですか?

私は今日これを試しました:

この背後にある理論的根拠は何ですか?

0 投票する
13 に答える
165908 参照

c# - Moqでのout/refパラメータの割り当て

Moq(3.0+)を使用してout/パラメーターを割り当てることは可能ですか?ref

を使用することを検討しましたが、ジェネリックに基づいているため、refパラメーターをサポートしていませんCallback()。また、コールバックでそれを行うことはできますが、パラメーターの入力にAction<>制約( )を設定することもできます。It.Isref

Rhino Mocksがこの機能をサポートしていることは知っていますが、私が取り組んでいるプロジェクトはすでにMoqを使用しています。

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

c# - どのような場合に out パラメータを使用する必要がありますか?

出力パラメーターをいつ使用する必要があるのか​​ わかりません。複数の型を返す必要がある場合は、結果を新しい型に個人的にラップします。

私はこのような方法を見てきました、

それが実際に理にかなっている場合はありますか?

どうですかTryParseParseResult型を返さないのはなぜですか? または新しいフレームワークでは、null 許容型を返しますか?

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

c# - 呼び出し元 (C#) での「out」キーワードの目的は何ですか?

C# 関数に出力パラメーターがある場合は、次のように明確にします。

これは、関数が呼び出されたときにパラメーターを初期化する必要がないことを示しています。ただし、この関数を呼び出すときは、out キーワードを繰り返す必要があります

これは何に良いのか気になります。関数仕様の一部を繰り返す必要があるのはなぜですか? 誰か知っていますか?

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

c++ - cout 出力をインデントするにはどうすればよいですか?

二分木を印刷しようとしています

レベル「-」文字で各値をインデントするために、出力をインデントするにはどうすればよいですか。