答えて
それは、例えば、それが渡された後の値をチェックせずに
ref
を使用して1, 3, 5
などの奇数のみを受け入れるようにStatistic
を強制することは可能ですか?
いいえ、私はそうは思わない。
私は単にメソッドの開始時にチェックします:
int ExtractMedian(int Statistic)
{
if(Statistic % 2 == 0)
throw new ArgumentException("Statistic must be odd");
return ExtractionWork;
}
いいえ、それをする方法はありません。
コード契約はこれを強制するために使用する必要がありますが、基本的にコードの後処理ステップであり、その後アナライザが無効な呼び出しを参照することがあります。これらは、.NETの統合機能の一部ではありません。
どこかで奇数または偶数のチェックを行う必要があります。通常は、入力が有効であることを確認するために関数の責任にする方がよいでしょう。
これがオプションでない場合は、値が奇数にしかならないOddクラスを作成することができます。
もしあれば、私はint値を含む不変の構造体を提案します。 –
私の無知を言い訳が、なぜ不変ですか? – ToxicTeacakes
ここには[短い答え](http://stackoverflow.com/questions/441309/why-are-mutable-structs-evil)です。長い答えのために、[これを読んでみたいです。](http://stackoverflow.com/questions/3751911/why-are-c-sharp-structs-immutable) –
引数は、クラスのint値とcheck値からの暗黙的な変換を持つクラスとして宣言できます。
public class OddValue
{
private int _value = 1;
public int Value
{
get
{
return _value;
}
set
{
if (value % 2 == 0)
throw new ArgumentOutOfRangeException();
_value = value;
}
}
public OddValue(int value)
{
this.Value = value;
}
public static implicit operator OddValue(int value)
{
return new OddValue(value);
}
}
public static void test(OddValue value)
{
}
test(5);
- 1. アンドロイドで自動的に通話を受け付ける方法は?
- 2. postgresqlを設定してログイン+パスワード認証を受け付ける方法は?
- 3. 設定方法NumberTextBoxはdojoの数字だけを受け入れますか?
- 4. ブーストスレッド - 割り込みを受け付ける方法
- 5. Pythonプログラムで小数点以下の未入力を受け付けない
- 6. NotificationManagerが通知を受け付けない理由
- 7. 添付ファイル付きのメールを受け取る方法は?
- 8. vsimはWindows上で-modelsiminiパラメータを受け付けません
- 9. Spring MVCコントローラへのGETリクエストで日付パラメータを受け入れる方法は?
- 10. SDカードイベントの通知を受け取る方法は?
- 11. テキストボックスフォーカスの通知を受け取る方法は?
- 12. AVPlayerからオーディオストリーミングステータスの通知を受け取る方法は?
- 13. 複数のc2dm通知を受け取る方法は?
- 14. EJBデプロイメント(タイマーの設定)に関する通知を受け取る方法は?
- 15. デリゲートをパラメータとして受け入れる方法
- 16. 日付と等しいノートだけをレンダリングする方法は?
- 17. Ajaxでoutパラメータを受け入れる方法は?
- 18. 通知が通知されたときに通知を受け取る方法
- 19. javascript - テキスト入力正の整数だけを受け入れる方法
- 20. iPhone iOSでPaypalの寄付を受け入れる方法は?
- 21. F#パラメータの受け渡し
- 22. MeteorはgetJson以外のdiv呼び出しを受け付けませんか?
- 23. Androidの別のサーバーから通知を受け取る方法
- 24. スプリングコントローラのマッピングでurlパラメータを受け取る方法
- 25. Windowsでコンテキストスイッチの通知を受け取る方法(7)
- 26. 入力を受け付けるac#formsアプリケーションからcmdを開く方法
- 27. 特定のユーザーだけがFacebookの通知を受け取ることができなくなります
- 28. 通知要求を受け入れるユーザーを特定する方法
- 29. できるだけ効率的にデータを数え、ランク付けする方法
- 30. 電話が振動すると通知を受け取る方法は?
この状況でどのようにrefが役立つかはわかりません。 –
「力」とはどういう意味ですか?消費者が偶数を渡した場合、あなたは何をしたいですか? –
さて、 'ref'を使うことで、呼び出されたメソッドは呼び出し元のメソッドに反映されます。したがって、実際には"例えば "によって意味されるものは、' refパラメータ 'を渡すのと似た方法です。 – Explisam