問題タブ [pass-by-reference]

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

c# - C# イベントの送信者オブジェクトの使用について

私は言語として C# をかなり初めて使用し (C++ のバックグラウンドから来ました)、現在、イベント駆動型 API を利用するアプリケーションを作成中です。

これは主に、イベント/応答ハンドラーを登録し、イベント モニターを開始してから、これらの非同期イベント/応答を処理することで構成されます。

私が理解するのに少し苦労しているのは、送信者オブジェクトの使用です。

私がそれを使用したいのは、要求を行う (またはモニターを設定する) ときに、さまざまな構造とデータを含むクラス オブジェクトにハンドルを渡すことです。そして、受信された応答/発生したイベントで、送信者オブジェクトを取得し、それを予想されるクラス型にキャストしてメンバーにアクセスし、さらに変更を加えるなどして、元のデータへのポインターであるかのように扱います。 (私はそれがそうであることを望んでいますか?)。

したがって、私の質問は、リクエストでクラスオブジェクトを渡しているので、これは実質的に参照になるのでしょうか、それとも実際には単なる汎用オブジェクトであるため、行のどこかに値によってコピーされるのでしょうか。イベントでのクラス オブジェクトの空のコピー?

または、ここで完全に間違った方向に進んでいる可能性があり、すべてを忘れる必要があるという3番目のオプションはありますか? :)

問題は、私の脳がまだポインター モードで動作していることだと思います...

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

java - JNI Pass By Reference、それは可能ですか?

C++プログラムを呼び出してユーザーを認証するJavaプログラムがあります。プログラムがtrueまたはfalseのいずれかを返し、falseの場合は、Javaプログラムから取得できるエラーメッセージ変数へのポインターを更新します。

別の説明:

ネイティブメソッドは次のようになります。

public native String takeInfo(String nt_domain, String nt_id, String nt_idca, String nt_password, String &error);

ここでそのメソッドを呼び出します。

boolean canLogin = takeInfo(domain, userID, "", userPass, String &error)

次に、C ++プログラムで、ユーザーが認証されているかどうかを確認してブール値に格納します。falseの場合は、エラーメッセージを取得し、それを使用して&errorを更新します。次に、そのブール値をJavaプログラムに戻します。ここで、エラーを表示したり、ユーザーに通したりすることができます。

何か案は?

もともと私はそれを持っていたので、プログラムはjstringとして「true」またはエラーメッセージのいずれかを返しますが、私の上司は上記のようにそれを望んでいます。

0 投票する
7 に答える
4558 参照

c - Cでのcharポインタの受け渡しと変更の混乱(参照と値)

よくわからないC文字列の問題を手伝ってくれないかと思っていました。3文字のポインタを送信する関数があります。この関数内で、charポインターはシフトされ、正しく変更されます。ただし、それらが呼び出されたメイン関数に戻ると、上記の関数は変更されません。私は価値を渡すのは間違いですか?これが私のコードの例です:

注:PATH_SIZEはサイズ値でありSTART_PATH、char配列であると想定します

0 投票する
7 に答える
3390 参照

java - Java: 参照渡し / ListIterator.add()

Java は参照によって変数を渡しません。その場合、データ構造のようなListIteratorものは、対応するリストにどのように変更を加えるのでしょうか?

これが私が書いているイテレータの例です:

しかし、 を変更しようとしても、基になるリストは変更listadd()れないため、次のテストは失敗します。

OdpList 追加: 単体テストに合格しているので、正しいと思います。

ListCell コンストラクター:

OdpList listIterator:

OdpList には以下が含まれます。

どうすればいいですか?それとも、イテレータの仕組みを誤解していますか?

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

php - PHPクラス内のある種のオフ変数の問題

私は私のクラスでこれを持っています

2 番目の関数が間違ったデータ型で php エラーと呼ばれ、変数のみが参照によって過去にできる場合。

私は彼らがそれによって何を意味するのか分かりません

このコードは php.net からのものです 同じコードがクラスの外にある場合、正常に実行されます

クラス内で作業している場合、ここで何が間違っていますか?

PHPエラーが表示されます

ありがとう、リチャード

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

c++ - 破棄されたものへの C++ アウト参照を割り当てますか?

だから私はいくつかのコードを調べています、そして私はこれを見ます:

これは、 outVal が有効な参照になるとは思えません... ただし、機能するようです。

これは以前に他のコードでも見たことがありますが、これは有効ですか? ありがとう

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

php - PHP5.xでの参照による受け渡し

私はZendPHP5認定の勉強をしていますが、すべてが良さそうに見えますが、参照する変数を渡したり返したりするための実際の例を見つけることができません。

誰かがこれをいつ使うべきかの例を持っているなら、それはとてもいいでしょう?

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

c# - C# とメソッド パラメーターへの参照の保存

ちょっとした背景情報として、ループで実行されているアプリケーションがあり、ティックごとにメソッド Tick を呼び出します。基本クラスを拡張し、すべて独自の tick メソッドを持ち、依存関係チェーンに追加されるクラスがたくさんあります。つまり、クラス A が呼び出され、そのチェーンに B と C のインスタンスが含まれている場合、B.Tick が呼び出されます。 、続いて C.Tick、最後に A.Tick です。

したがって、擬似コードでは、私のクラスは次のようになります。

B は正常に機能しており、常に正しい値を取得します。問題は、クラス内の別の変数への参照を保存できないと思うので、 new C(ref one); を実行するときです。Cのコンストラクターはクラス変数を1に設定しています。後でAで1つが更新された後、Cがまだ1つを指しているはずであること(現在更新されている)をCが認識できなくなり、空になっているだけです(元のように)コンストラクター内にありました)。C# ポインターと安全でないコードを使用せずに、私がやろうとしていることを達成する方法についてのアイデアはありますか? ありがとう、うまくいけばそれは理にかなっています:)

編集:どうやら人々は、実際の質問とはまったく関係のない紛らわしい疑似コードで質問に答えることができないため、変更は次のように拡張されます:

編集2:Cクラス

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

php - PHP5 での参照による文字列変数のトリミング

このステートメントを使用して、配列に含まれる文字列変数をトリミングすることを提案する別の投稿を見ました。

ただし、そもそも文字列が配列に含まれていない場合は、次のように使用できるトリム関数が必要です。

私はこのような関数を書き込もうとしました:

しかし、成功しないと、関数が戻った後に文字列変数がトリミングされません。

なぜ、どのようにこれを行うことができますか??

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

c# - 参照渡しと外渡し

したがって、foreach ループを使用して反復処理を行っていて、リストから反復処理されたオブジェクトの引数を受け取る関数が内部にある場合、その値を異なる値に設定するとします。out または ref を使用する必要がないのはなぜですか? out または ref を使用しなかった場合は、値によってのみ渡されると思いました.... メソッドから戻る前に値を設定する必要がある ref の前に変数を初期化する必要があることを私は知っています。

リストを反復処理して、実際に参照渡しされたオブジェクトを渡す場合のようです。次の例を考えてみましょう。

出力:

SetFoo Pre: 1 SetFoo Inside: 1 ::
WithoutRef SetFoo Post: 1 WithoutRef
SetFoo Pre: 1 :: WithoutRef SetFoo
Inside: 1 :: WithoutRef :: WithRef
SetFoo Post: 1 WithoutRef :: WithRef

SetFoo Pre: 2 SetFoo Inside: 2 ::
WithoutRef SetFoo Post: 2 WithoutRef
SetFoo Pre: 2 :: WithoutRef SetFoo
Inside: 2 :: WithoutRef :: WithRef
SetFoo Post: 2 WithoutRef :: WithRef

SetI Pre: 0 SetI Inside: 2 SetIPost: 0

SetRefI Pre: 0 SetRefI Inside: 3
SetRefI Post: 3

整数の例で参照を理解していますが、上記の Foo オブジェクトの反復の例は理解していません。

ありがとう!