[解決済み] C#でプロパティをoutパラメータとして渡す
2023-07-23 20:09:46
質問
仮に私が
public class Bob
{
public int Value { get; set; }
}
を渡したい。 値 のようなメンバーをoutパラメータとして渡したい。
Int32.TryParse("123", out bob.Value);
を追加しましたが、コンパイルエラーになります。 引数'out'は変数として分類されません。 これを達成する方法はありますか、または私は、à la、変数を抽出する必要がありそうです。
int value;
Int32.TryParse("123", out value);
bob.Value = value;
どのように解決するのですか?
自動実装されたプロパティではなく、明示的にフィールドと "normal" プロパティを使用する必要がありますね。
public class Bob
{
private int value;
public int Value
{
get { return value; }
set { this.value = value; }
}
}
次に フィールド をoutパラメータとして渡します。
Int32.TryParse("123", out bob.value);
しかしもちろん、フィールドはプライベートなので、これは同じクラス内でしか動作しません(そうであるべきです!)。
プロパティはこれをさせません。VB でさえも ができます。 でさえ、基本的に余分な一時変数が存在します。
の返り値を気にしないのであれば、このように
TryParse
の戻り値を気にしないのであれば、いつでもあなた自身のヘルパーメソッドを書くことができます。
static int ParseOrDefault(string text)
{
int tmp;
int.TryParse(text, out tmp);
return tmp;
}
では、使ってください。
bob.Value = Int32Helper.ParseOrDefault("123");
こうすることで、複数個所で行う必要がある場合でも、1つの一時変数を使用することができます。
関連
-
[解決済み] リフレクションを使用して文字列からプロパティ値を取得する
-
[解決済み] C#のオートプロパティに初期値を与える最良の方法は何ですか?
-
[解決済み] List<T>をオブジェクトのプロパティでソートする方法
-
[解決済み] フィールドとプロパティの違いは何ですか?
-
[解決済み] 特定のプロパティに対するLINQのDistinct()
-
[解決済み] Pythonの@propertyデコレーターはどのように機能するのでしょうか?
-
[解決済み] オブジェクトのプロパティを値でソートする
-
[解決済み] 変数を使用してオブジェクトのプロパティに動的にアクセスする
-
[解決済み] Distinct() with lambda?
-
[解決済み] プロパティとゲッターとセッターの使い分け
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】"出力タイプがクラスライブラリのプロジェクトは直接起動できない"
-
[解決済み] メンバー '<メンバー名>' にインスタンス参照でアクセスできない
-
[解決済み] [Entity Framework 4.1でエンティティに関連オブジェクトを追加する際に、エンティティオブジェクトをIEntityChangeTracker.の複数のインスタンスから参照できない。
-
[解決済み] 保護レベルによりアクセス不能になりました。
-
[解決済み】値が期待した範囲に収まらない
-
[解決済み] 'IEnumerable<SelectListItem>' 型の ViewData アイテムで、キーが国であるものは存在しない。
-
[解決済み] 2つのリストを結合する
-
[解決済み】画像のペイントにTextureBrushを使用する方法
-
[解決済み] 関数を終了するには?
-
[解決済み】データが存在しないのに読み込もうとする試みが無効である