問題タブ [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.
vb.net - ParamArrayByRefの使用
ParamArray ByRefを使用する方法はありますか?それを除けば、同じことを達成する回避策はありますか?
私はいくつかの過負荷を行うことができましたが、私は不器用さを避けようとしています。
背景:古いコードを移植し、可能な限り同じ構造を維持しようとしています。
編集
私が欲しいものの具体例:
私はvb.netに移植しているturboBasicにいくつかのコードを持っています。コードには、次のような関数が組み込まれています。
ここで、Input()はファイル#1を取得し、そこから3つのデータを読み取り、表示されている3つの変数に割り当てます。この動作を自分のInput()関数で再現したいと思います。そのためには、3つ(またはそれ以上またはそれ以下)の変数を取り込んで、それらに値を割り当てるにはどうすればよいですか?
理想的には、Input()の独自の定義を変更するだけでこれを実現できるので、コードベースをできるだけ少なくすることができます。
vb.net - 値型への VB.NET ポインター
VB.NET 2010、.NET 4
皆さんこんにちは、
私は決して優れたプログラマーではなく、このようなことについて頭を抱えているだけなので、これがばかげた質問である場合はご容赦ください。
「5」ではなく「2」というメッセージボックスを生成するには、次のようにします。
これはうまくいきません。メッセージ ボックスには「5」と表示されます。その理由はある程度理解できたと思います。SomeInt は値型なので、これを SomeListOfInts に追加するとコピーが追加されるだけです。これが一貫性がない場合は申し訳ありません。これを達成する簡単な方法はありますか?
前もって感謝します、ブライアン
編集: 追加したかったのですが、人々は「なぜこれをしようとするのですか?」/「これをしようとするのは良いことではありません」と言うと思います。私はそれで大丈夫で、より良いアプローチがあれば知りたいと思っていますが、それが良い習慣であるかどうかにかかわらず、このようなことがどのように行われるかについても一般的に興味があります。また、それが良い習慣ではない場合 (それが何を意味するにせよ)、なぜですか?
c# - オブジェクトをメソッドに渡し、そのオブジェクトで拡張メソッドを呼び出す
私は昨日メソッドに取り組んでいて、何か奇妙なことに遭遇しました。ここにコードのダムバージョンがあります。基本的に問題は、Bar.PopulateListメソッドに適用されたOrderByが持続しないことです。
ここで、コードを更新し、以下のようにrefキーワードを追加すると、すべて機能します。たとえば、public static int PopulateList(ref List theList)およびBar.PopulateList(ref MyObjects);
誰かが私を啓発できますか?オブジェクトは常にrefによって渡されると思いましたか?OrderByが拡張メソッドであるというのは事実ですか?
ありがとう、Cian
vb.net - ByRefとByValの明確化
TCPサーバーへのクライアント接続を処理するクラスを始めたばかりです。これまでに書いたコードは次のとおりです。
だから、私のオーバーロードされたコンストラクターで、私はのインスタンスへの参照を受け入れています、そうですか?System.Net.Sockets.Socket
さて、私のSocket
プロパティでは、値を設定するときに、である必要がありますByVal
。メモリ内のインスタンスがコピーされ、この新しいインスタンスがに渡されvalue
、コード_Socket
がメモリ内のこのインスタンスを参照するように設定されていることを理解しています。はい?
これが本当なら、なぜネイティブタイプ以外のプロパティを使用したいのかわかりません。多くのメンバーを持つクラスインスタンスをコピーすると、パフォーマンスが大幅に低下する可能性があると思います。また、特にこのコードの場合、コピーされたソケットインスタンスは実際には機能しないと思いますが、まだテストしていません。
とにかく、私の理解を確認するか、私の霧の論理の欠陥を説明していただければ幸いです。
generics - F#メンバー制約+ ^abyrefパラメーター
F#メンバーの制約機能と書き込み機能を試してみた後、次のようになります。
それは完全にうまく機能します:
tryParse
静的メソッドを使用しTryParse
、解析結果を型にラップし'a option
てF#でのサポートを向上させる、他の関数を作成しようとしています。このようなものはコンパイルされません:
エラーは次のとおりです。
エラーFS0001:この式のタイプは byref <'a>であると予想されて いましたが、ここではタイプ ' arefです。
F#ref
セルも機能しません:
私は何が間違っているのですか?
vb.net - 'ByRef'パラメータ''ラムダ式では使用できません
SharpZipLibを使用してファイルを圧縮しています。ライブラリは、別のDLLのプラグインインターフェイスにラップされています。プラグインdllにByRef
パラメーターを渡して、圧縮の進行状況を追跡します。
SharpZipLibは、圧縮中に、圧縮の起動時に渡されたデリゲートサブを定期的に呼び出します。ByRef
デリゲートが呼び出されたときにパラメーターを更新する方法がわかりません。ByRef
ランバ式の本体に変数を割り当てようとすると、'ByRef' parameter '<parametername>' cannot be used in a lambda expression
エラーが発生します。
これが私のコードです:
ありがとう!
.net - byref、ref、および & を理解する
さて、F# は参照 (ある種の C++ のような参照) を管理できることを理解するようになりました。これにより、関数に渡されるパラメーターの値を変更できるようになり、プログラマーが複数の値を返すことも可能になります。ただし、ここに私が知る必要があるものがあります:
Ref キーワード: キーワード
ref
は、値から、推論された型のその値への参照を作成するために使用されます。そうRef<int>
これは、F#が (変更可能なフィールドに) my を置く型のオブジェクトを作成することを意味しますint 10
。わかった。したがって、それがタイプ
ref
のインスタンスを作成するために使用されると思います。Ref<'a>
それが正しいか?値へのアクセス: 参照に格納されている値にアクセスするには、次のようにします。
オペレーターは、
:=
次のように値を編集できるようにします。したがって
!
、(Bang) は私の参照を逆参照します。そしてそれ:=
を編集します。これも正しいと思います。& 演算子: この演算子は何をしますか? 参照型に適用されますか? いいえ、変更可能な値に適用する必要があると思いますが、これは何を返しますか? 参照?住所・アドレス?インタラクティブを使用する場合:
&
最後の行でエラーがスローされるため、演算子の目的がわかりません。ByRef: はどう
byref
ですか?それは私にとって非常に重要なことですが、私はそれを理解していないことに気づきました。パラメータの受け渡しに関する関数で使用されていることを理解しています。渡された値を編集できるようにしたい場合は byref を使用します (これは関数型言語の哲学に少し反しますが、f# はそれ以上のものです)。次の点を考慮してください。変ですね。
let myref = ref 10
参照があり、これを実行して値を編集すると、次のmyref <- 10
ようになるためエラーが発生することを私は知っています:myref := 10
。しかし、その関数で演算子x
を使用して編集できるということは、それは参照ではないということですよね?<-
x
それが参照ではないと仮定すると
x
、関数でパラメーターを使用byref
するときに、そのパラメーターに変更可能な構文を適用できると仮定します。したがって、これは構文の問題であり、これで問題ないと仮定すると、実際にはすべてが機能します (コンパイラ エラーは発生しません)。しかし、何x
ですか?関数の呼び出し: byref パラメーターを使用する関数を使用するにはどうすればよいですか?
/li>&
オペレーターが関与していますが、これについてもっと詳しく説明していただけますか? この記事: MSDN のパラメーターと引数では、次の例が提供されています。
c# - VB.NET AND C#で文字列ByValを渡す
文字列は参照型ですよね?私の理解では、文字列 ByVal をメソッドに渡す場合でも、ヒープ内の文字列への参照が渡されます。
すっごい……
あるいは
私は何が欠けていますか?そして、ボンネットの下で何が起こっているのですか?価値が変わっていたのに人生を賭けていただろう....
powershell - パラメータ(「参照による」パラメータ)を使用してPowerShellからオブジェクトを返しますか?
1つのPowerShell(2.0)スクリプトが別のスクリプトを呼び出しています。メイン出力だけでなく、メッセージに要約行を表示するなど、個別に使用できる追加のオブジェクトを受け取りたいです。
呼び出されるスクリプトとしてTest2.ps1を使用しましょう。
そして、それを呼び出すスクリプトとしてTest1.ps1:
出力は単純です:
パラメータ$SummaryLineはTest2によって入力されますが、$SummaryOutputはTest1では未定義のままです。
Test2を呼び出す前に$SummaryOutputを定義しても役に立ちません。Test2を呼び出す前に割り当てられた値を保持するだけです。
$SummaryOutputと$SummaryLineを[ref]変数として設定しようとしましたが(関数で行うことができるようです)、Test2を呼び出した後の$SummaryOutput.Valueプロパティは$nullです。
PowerShellでパラメーターに値を返すことは可能ですか?そうでない場合、回避策は何ですか?Test2で親スコープの変数を直接割り当てますか?
.net - ByRef 引数でラムダ式を使用する Func(Of Tin, Tout) は、互換性のない署名エラーを返します
なぜこれを行うのですか:
次のエラーが発生します。
ネストされた関数には、デリゲート String) と互換性のあるシグネチャがありません。
これの間:
ではない?(違いは ByRef/ByVal です)
さらに、どうすればそのようなことを実装できますか?