1

これが私の方法です:

   public static bool ValidateAddressCount(ref long o_addressCount)
    {
  // o_addressCount is modified here
  //return true or false
   }

メソッドが何を返すかは気にしない場合があります。必要なのは o_adressCount だけです。このメソッドを次のように使用することをお勧めします。

  long addressCount =  0;
  ValidateAddressCount(ref addressCount); //without assigning the returned value to any variable
  //use address count

また、これが.netで機能する理由を誰かが説明できますか?

ありがとうございました

4

7 に答える 7

4

その開発者次第です。難しいルールはありません。

のようにbool int.TryParse(string s, out int a){}

値に変換する値を渡すと、値がint返さboolれ、out 変数を使用して変換された値が送信されます。

変換されたかどうかを確認する必要がある場合があります。そこで戻り値を使用します。

string str = "1";
int a = 0;

if(int.TryParse(str, out a))
    MessageBox.Show("Converted");
else
    MessageBox.Show("Not Converted");

Tryparse は次のように単純に使用できます。

bool b = int.TryParse(str, out a);

返されたブール値が役に立たないとしましょう。bそれでは、なぜ variable( ) を作成し、値を割り当てて使用しないことでメモリを浪費するのでしょうか。だから私はそれを次のように書きます

int.TryParse(str, out a);
于 2012-05-22T07:38:23.673 に答える
3

機能する理由は簡単です。

long addressCount =  0;
ValidateAddressCount(ref addressCount);

と同じ形です

long addressCount =  0;
true;

Any<expression> ;は有効なステートメントです。

ただし、ここには有効な質問があります。

  • 間違いである可能性が非常に高いこの構文に対して警告がないのはなぜですか?

一般に、戻り値を無視することはお勧めできません。

于 2012-05-22T07:40:34.557 に答える
1

でメソッドを宣言したためreturn-value、これは機能します。つまり、それを気にする必要があるかもしれreturn-valueませんが、必須のオプションではありません。

于 2012-05-22T07:38:40.127 に答える
1

メソッドを呼び出すときに、渡されたパラメーターで呼び出されたメソッドの変更が必要な場合は、ref/out を使用します。

それ以外の場合、ref/out を使用するのは適切な選択ではありません。

呼び出されたメソッドから複数の値を返したい場合は、動的オブジェクト/タプルを使用する必要があります。

于 2012-05-22T07:40:43.390 に答える
0

いいえ、戻り値を割り当てる必要はありません。しかし、私の意見でvalidateSomething(object)は、オブジェクトが有効かどうかにかかわらず、メソッドには戻り値が必要であり、戻り値を確認することが重要です。

メソッドがオブジェクトに対して何かを実行する場合、それを単に呼び出すべきではありませんvalidateSomething(object)が、validateAndChangeSomething(object)...現在、メソッドが実行していることと、検証の主要な出力である戻り値または変更されたオブジェクトが混乱しています。

于 2012-05-22T07:45:00.077 に答える
0

あなたが書いたことは機能しますが、あなたの方法が何をしているのかは特に明白ではないと思います。

私が最初にコーディングを始めてから少しずつ状況は変わってきましたが、今ではまずコードを人間が読めるようにしてから、本当に予期しないことをしなければならない場合はコメントアウトするのが良い習慣になっていると思います。

それを念頭に置いて、カウントを取得するためのプロパティを提供するようにコードを微調整し、パラメーターが不要になるようにメソッドを変更します。

これがあなたの質問の「メソッドを使用して戻り値の型を無視する」という部分に答えていないことは知っていますが、それはあなたがその時点で何をしているかについて主観的だと思います。

于 2012-05-22T08:06:19.227 に答える
0

メソッドの結果を使用する必要はありません。その副作用のために呼び出すことができます。ただし、ref可能であれば、通常は使用を避けることをお勧めします。あなたの場合、単に返すことができますlong?

于 2012-05-22T07:42:55.553 に答える