C#.netのconstとreadonlyの違い
(1) Readonly と const は両方とも定数をマークするために使用されます。
(2) 初期化の代入が異なります。
const で変更された定数には、宣言と同時に値を割り当てる必要があります。例:
public class Class1 { public const int MaxValue = 10; //正确声明 public const MInValue; //错误:常量字段要求提供一个值 public Class1() { MinValue = 10; } }
readonly フィールドは、初期化 (宣言またはコンストラクター) 中に割り当てることができます。したがって、読み取り専用フィールドは、使用されるコンストラクターに応じて異なる値を持つ可能性があります。
public class Class1 { public readonly int c = 10; //正确声明 public readonly int z; public Class1() { z = 24;//正确 } protected void Load() { z = 24;//错误:无法对只读的字段赋值(构造函数或变量初始值指定项中除外) } }
readonly はインスタンスのメンバーであるため、異なるインスタンスは異なる定数値を持つことができ、これにより readonly がより柔軟になります。
public readonly Color Red = new Color(255, 0, 0); public readonly Color Green = new Color(0, 255, 0); public readonly Color Blue = new Color(0, 0, 255);
(3) const フィールドはコンパイル時の定数ですが、readonly フィールドは実行時の定数として使用できます。
const では、コンパイラがコンパイル時に特定の値を計算できる必要があります。コンパイル時に、定数が呼び出されるすべての場所が計算された値に置き換えられます。したがって、変数から値を抽出して定数を初期化することはできません。
readonly ではフィールドを定数に設定できますが、初期値を決定するために一部の操作を実行できます。 readonly は計算時に実行されるため、特定の変数で初期化できます。この値は実行時に決定されます。
(4) const はデフォルトで static であり、static に設定されている場合は readonly を宣言する必要があります。
(5) const で変更される値の型も制限されており、sbyte、byte、short、ushort、int、uint、long、ulong のいずれかに変換できます。 、char、float、double、10 進数、bool、string、enum 型または参照型。 const として宣言できる参照型は、値が null である文字列またはその他の参照型のみであることに注意してください。 readonly は任意のタイプにすることができます。
これは、const 定数が必要な場合、その型によってコンパイル中に定数が特定の値に計算されることが制限されている場合、それを static readonly として宣言することで解決できることを意味します。しかし、両者の間にはまだわずかな違いがあります。以下の 2 つの異なるドキュメントを見てください。
file1.cs
using System; namespace MyNamespace1 { public class MyClass1 { public static readonly int myField = 10; } }
file2.cs
namespace MyNamespace2 { public class MyClass1 { public static void Main() { Console.WriteLine(MyNamespace1.MyClass1.myField); } } }
2 つのクラスは 2 つのファイル file1.cs と file2.cs に属し、別々にコンパイルされます。ファイル file1.cs 内のドメイン myField が静的読み取り専用として宣言されている場合、必要に応じて myField の値を 20 に変更すると、file2 の実行時にファイル file1.cs を file1.dll に再コンパイルするだけで済みます。 exe つまり20個もらえることになります。
ただし、static readonly を const に変更してから myField の初期化値を変更する場合は、file1.dll を参照するすべてのファイルを再コンパイルする必要があります。再コンパイルしないと、参照する MyNamespace1.MyClass1.myField が希望どおりに動作しません。これは、大規模なシステムの開発中に注意を払うことが特に重要です。
(6) object、Array(配列)、struct(構造体)はconst定数として宣言できません。
上記は、c#.net における const と readonly の違いです。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Vue3 の readonly 機能の詳細説明 readonly は Vue3 で提供された新機能で、レスポンシブなオブジェクトを読み取り専用オブジェクトにするために使用されます。 readonly を使用すると、オブジェクトは読み取りのみ可能で変更できなくなり、アプリケーションの安定性とセキュリティが向上します。 Vue3 では、readonly 関数を使用してオブジェクトを読み取り専用オブジェクトに変換できます。例: import{readonly}from'vue'conststate=readonly({count:0}) 上記のコードでは、状態オブジェクトは次のようになります。読み取り専用オブジェクトに変換されます。つまり、state.count

現在、人工知能(AI)技術の開発は本格化しており、さまざまな分野で大きな可能性と影響力を発揮しています。本日、Dayao は、参考にしていただけるよう、4 つの .NET オープン ソース AI モデル LLM 関連プロジェクト フレームワークを共有します。 https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel は、OpenAI、Azure などの大規模言語モデル (LLM) を統合するように設計されたオープン ソース ソフトウェア開発キット (SDK) です。

C の const の詳細な説明とコード例 C 言語では、const キーワードを使用して定数を定義します。これは、プログラムの実行中に変数の値を変更できないことを意味します。 const キーワードは、変数、関数パラメータ、関数の戻り値を変更するために使用できます。この記事では、C 言語での const キーワードの使用法を詳細に分析し、具体的なコード例を示します。 const 変更された変数 const を使用して変数を変更する場合、その変数は読み取り専用変数であり、値が割り当てられると変更できないことを意味します。例: 定数

オーディオ出力と入力が Windows 11 で期待どおりに動作するには、特定のドライバーとサービスが必要です。これらは場合によってはバックグラウンドでエラーが発生し、オーディオ出力がない、オーディオ デバイスが見つからない、オーディオが歪むなどのオーディオの問題を引き起こすことがあります。 Windows 11 でオーディオ サービスが応答しない問題を修正する方法 以下で説明する修正プログラムから始めて、問題を解決できるまでリストを順に進めていくことをお勧めします。 Windows 11 では、さまざまな理由でオーディオ サービスが応答しなくなる可能性があります。このリストは、Windows 11 でオーディオ サービスの応答を妨げるほとんどの問題を確認し、修正するのに役立ちます。プロセスを進めるには、以下の関連セクションに従ってください。方法 1: オーディオ サービスを再起動します。

const は、定数、関数パラメータの const 修飾子、const で変更された関数の戻り値、および const で変更されたポインタを宣言するために使用できるキーワードです。詳細な導入: 1. 定数を宣言します。const キーワードを使用して定数を宣言できます。定数の値は、プログラムの実行中に変更できません。定数には、整数、浮動小数点数、整数などの基本的なデータ型を使用できます。文字など、またはカスタム データ型; 2. 関数パラメータ内の const 修飾子 const キーワードは関数のパラメータ内で使用でき、関数内でパラメータを変更できないことを示します。

同時実行性の高いリクエスト処理の点では、.NETASP.NETCoreWebAPI は JavaSpringMVC よりも優れたパフォーマンスを発揮します。その理由としては、AOT の早期コンパイルにより起動時間が短縮され、開発者がオブジェクト メモリの割り当てと解放を行うため、より洗練されたメモリ管理が行われます。

C++ での const キーワードの正しい使用法: const を使用して関数を変更するということは、関数が渡されたパラメーターやクラス メンバーを変更しないことを意味します。 const を使用して関数ポインターを宣言することは、ポインターが定数関数を指すことを意味します。
