[解決済み] C#のConst関数パラメータ [重複]について
質問
重複の可能性があります。
C#の読み取り専用("const "ライク)関数パラメータ
C#のconstメンバメソッドとconstパラメータはなぜ存在しないのですか?
過去にC++でプログラミングをしたことがありますが、メソッドの中で定数参照/ポインタのパラメータを作ることができたと記憶しています。
私の記憶が正しければ、以下の意味は、メソッドは参照を変更できず、参照自体は定数参照であるということです。
C++の例
void DisplayData(const string &value) const
{
std::count << value << endl;
}
C#では、クラス内のメソッドに相当するものはありますか?
なぜこのような質問をするかというと、私はオブジェクトを参照渡し(スピードのため)、同時に誰にも変更されないようにしようとしているからです。
どのように解決するのですか?
更新日:2020年09月16日
があるようです。
in
パラメータモディファイア
この挙動を示すもの(要するに
ref readonly
). どんな時にこれを使うのか、簡単に調べてみると、以下のような答えが返ってきました。
なぜ、C#では"in"パラメータ修飾子を使うことがあるのでしょうか?
オリジナル回答
C#に相当するものがなく、質問されたことがある 多数 , 多数 , 多数 , 多数 を過去に何度も使っている。
もし、誰にも "reference" を変更されたくないのなら、あるいは、オブジェクトの内容を意味するのなら、そのクラスがパブリックなセッターやクラスを変更するメソッドを公開しないようにしてください。もし、クラスを変更できないのであれば、読み取り専用でメンバーを公開するインターフェースだけを実装し、代わりにインターフェース参照を渡すようにします。
もし、メソッドが参照を変更しないようにしたいということであれば、デフォルトでは、"by reference" を渡すと、実際には値によって参照を渡していることになります。メソッドが参照を変更しようとすると、呼び出し側のコピーではなく、ローカルメソッドのコピーにのみ影響します。これは
ref
キーワードを参照型に設定します。
できる
は参照を新しい基礎となるオブジェクトに向け、それを
意志
は呼び出し元に影響を与えます。
関連
-
[解決済み] 'SubSonic.Schema .DatabaseColumn' 型のオブジェクトをシリアライズする際に、循環参照が検出されました。
-
[解決済み】プロジェクトビルド時のエラー。エディタでスクリプトにコンパイルエラーがあるため、Playerのビルドにエラーが発生する
-
[解決済み】C# ASP.NET使用時に「WebClientのリクエスト中に例外が発生しました。
-
[解決済み】Visual Studio: 操作を完了できませんでした。パラメータが正しくありません
-
[解決済み】パラメータ付きRedirectToAction
-
[解決済み】データが存在しないのに読み込もうとする試みが無効である
-
[解決済み] const 配列を宣言する
-
[解決済み] C#のconstとreadonlyの違いは何ですか?
-
[解決済み] Static readonly」対「const」。
-
[解決済み] C#でメソッドをパラメータとして渡す
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] [Solved] 1つ以上のエンティティで検証に失敗しました。詳細は'EntityValidationErrors'プロパティを参照してください [重複]。
-
[解決済み] エンティティタイプ ApplicationUser は、現在のコンテキストのモデルの一部ではありません。
-
[解決済み】統合マネージドパイプラインモードで適用されないASP.NETの設定が検出された
-
[解決済み】「入力文字列が正しい形式ではありませんでした」エラーの解決方法は?[重複しています]。
-
[解決済み】2年前のMSDateを把握する【クローズド
-
[解決済み】aspNetCore 2.2.0 - AspNetCoreModuleV2 エラー
-
[解決済み】エラー「必要なフォーマルパラメータに対応する引数が与えられていない」を解決する?
-
[解決済み】インデックスが範囲外でした。コレクションパラメータname:indexのサイズより小さく、非負でなければなりません。
-
[解決済み】ファイルやアセンブリ、またはその依存関係の1つをロードできませんでした。
-
[解決済み】WebResource.axdとは何ですか?