問題タブ [byref]

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

com - VB6 COM は byRef Variant で ADODB.Recordset を返します。C#で取得するには?

この COM メソッドを呼び出そうとしています:

Out_Data は、メソッド本体で ADODB.Recordset (2.6) として定義および設定されます。

考えられるいくつかの異なる方法を試しましたが、それでもそのレコードセット オブジェクトを取得したり、取得したりできないようです。

何か案は?

ありがとう...

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

.net - Dictionary.TryGetValue と同じ動作を実装するにはどうすればよいですか

したがって、次のコードが与えられます

そして、次のテストコード

r1,v1 行は正常に動作します。r2,v2 行は爆撃します。不平を言う c.TryGetValue にはタプルを指定する必要があります。興味深いことに、各行で TryGetValue の署名が異なります。カスタム実装が BCL バージョンと同じ動作を示すようにするにはどうすればよいですか? または、別の言い方をすれば、F# には (暗黙的に) タプル パラメーター、カリー化されたパラメーター、および BCL パラメーターの概念があり、カリー化されたスタイルとタプル スタイルを区別する方法を知っているため、どうすれば 3 番目のスタイルを強制できますか (a la BCL メソッド) )?

これが不明な場合はお知らせください。

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

.net - Powershell / .Net:メソッドによって返されるオブジェクトへの参照を取得します

簡単なパーサーを作成して、PowerShellを自分で学んでいます。.NetFrameworkクラスを使用していCollections.Stackます。スタックの一番上にあるオブジェクトを所定の位置に変更したいと思います。

pop()オブジェクトをオフにして変更してからオンに戻すことができることはわかっていますpush()が、それは私をエレガントではないと思います。

まず、私はこれを試しました:

エラーをスローしました:

次に私はこれを試しました:

これはエラーを防ぎましたが、それでも正しいことをしませんでした:

明らかに、$ aryに割り当てられるのはスタックの最上位にあるオブジェクトのコピーであるため、$ aryにあるオブジェクトを作成しても、スタックの最上位にあるオブジェクトは変更されません。

最後に、[ref]タイプを読み、これを試しました。

しかし、まだサイコロはありません:

このpeek()メソッドは、クローンではなく、実際のオブジェクトへの参照を返すと思います。その場合、参照はPowerShellの式処理ロジックによってクローンに置き換えられているように見えます。

私がやりたいことをする方法があるかどうか誰かに教えてもらえますか?pop()または、 /変更/に戻す必要がありpush()ますか?

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

.net - リフレクション: 参照型の基になる型を取得する方法

ParameterInfo.IsOut、ParameterInfo.IsIn (私が見る限りどちらも常に false)、ParameterAttributes が存在するにもかかわらず、"ref" および "out" パラメーターが特別な属性によってマークされていないことを知って驚きました。 In および ParameterAttributes.Out。代わりに、「ref」パラメーターは実際には特別な種類の「Type」オブジェクトによって表され、「out」パラメーターは追加の属性 (どのような属性かはまだわかりません) を持つ単なる ref パラメーターです。

とにかく、参照による引数を作成するには Type.MakeByRefType() を呼び出しますが、私の質問は、参照による型が既にある場合、どうすれば元の型に戻るのでしょうか?

ヒント: UnderlyingSystemType ではありません:

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

c# - C#でByValを「実行」する方法

私が理解しているように、C# はパラメーターを参照によってメソッドに渡します。VB.NET では、これを ByVal と ByRef で指定できます。デフォルトは ByVal です。

これは Visual Basic 6.0 との互換性のためですか、それともランダムですか? また、C# で何を使用するかを指定するにはどうすればよいですか? パラメータを値で渡すというアイデアが好きです。

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

python - Python は参照によってオブジェクトにアクセスします / タグ付けが必要です

stdin からデータを吸い込んでオブジェクトを作成する必要があります。

受信データの長さは 5 ~ 10 行です。各行には、プロセス番号と、IP アドレスまたはハッシュのいずれかが含まれています。例えば:

このデータを次のようなクラスに入れる必要があります。

IP、HASH、または PID でオブジェクトを検索できる必要があります。

難しいのは、stdin からの複数のデータ ストリームが混在していることです。(数百または数千のプロセスが同時にデータを書き込んでいる可能性があります。)

必要な PID、IP、および HASH を取得する正規表現がありますが、これらの値のいずれかでオブジェクトにアクセスするにはどうすればよいですか?

私の考えは、次のようなことをすることでした:

これにより、2 つのキー (PID と IP) を持つ配列が得られ、それらは両方とも同じオブジェクトを指します。しかし、ループの次の繰り返しで、(たとえば) IP と HASH を見つけて実行すると:

以下は偽です。

うまくいけば、それは明らかでした。VB の時代には、byval ではなく byref でオブジェクトを処理できたのを覚えています。Pythonに似たようなものはありますか? それとも、私はこれに間違って近づいていますか?

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

javascript - オブジェクトを参照渡ししないようにする

オブジェクトが Javascript で参照によって渡される難しい方法を見つけました。たとえば、次のようになります。

これにより、tempValues と hudLayers の値が変更されます。(当たり前のように思えますが、コードのない投稿はむき出しのように見えます。)

これを回避する簡単な方法はありますか?

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

vb.net - 文字列を渡すときの ByRef と ByVal のパフォーマンス

どちらが速いですか?ByVal または ByRef? Stringsそこにあるコメントがパフォーマンスの点で当てはまるかどうか疑問に思いました。文字列は渡される前にコピーされるため、(呼び出し先が文字列コースのコピーを必要としない場合) 文字列を渡す方がはるかに効率的ではありませんByRefか?

ありがとう、
CFP。

編集:このコードを考えてみてください。これにより、ある種のコピーが行われていると思いました:

以下を出力します。

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

vb.net - VB.NET で "Me" ByRef を渡すことが合法なのはなぜですか?

ほんの少し前に、以下が合法であることを発見してショックを受けました (C# の同等物は間違いなく合法ではありません)。

しかし、私にとってさらに奇妙なのは、私が期待することをしていないように見えることです。

上記の出力は、私が思っていたような「0」ではなく、「10」を出力します (もちろん、この期待自体にある種の恐怖が吹き込まれていました)。したがって、を渡すことができるMe ByRefように見えますが、動作はコンパイラによって何らかの形でオーバーライド (?) され、を渡したMe ByValのようになります。

  1. なぜ渡すことが合法なのMe ByRefですか?(下位互換性の説明はありますか?)
  2. これを行う動作はコンパイラによってオーバーライドされるというのは正しいですか? そうでない場合、何が欠けていますか?
0 投票する
1 に答える
604 参照

f# - address-of 演算子と ref 演算子の違い

私のコードでは、参照によっていくつかの構造体を渡し、それらを変更可能であると宣言し、&シンボルを使用しています。問題は、ある場所でフィールドが壊れていることです (リリース モードでのみ発生します)。その理由はまったくわかりません。

address-of 演算子の代わりに ref キーワードを使用して、修正を見つけました。(インスタンス メンバー パラメーターの場合) 自由に交換できることは理解していますが、なぜ問題が解決したのですか?

これを説明する小さなコード サンプルを次に示します。

byref を使用して構造体を渡すことは、相互運用シナリオの場合、または構造体のフィールドを変更する場合にのみ役立ちます。ただし、これは私の場合ではありません。代わりに値 (約 20 バイト程度) で構造型を渡すことを検討する必要がありますか?

ありがとう!