カテゴリ: VB.NET 更新日: 2025/12/14

VB.NETの定数とReadOnlyを完全解説!初心者でもわかる使い分け方法

VB.NETで定数とReadOnlyを使い分ける方法
VB.NETで定数とReadOnlyを使い分ける方法

先生と生徒の会話形式で理解しよう

生徒

「先生、VB.NETで変わらない値を扱いたいときはどうすればいいんですか?」

先生

「そういう場合にはConst(定数)ReadOnlyを使います。」

生徒

「ConstとReadOnlyって似ているように聞こえるんですが、何が違うんですか?」

先生

「とても大事なポイントです。今日はConstとReadOnlyの違いと使い分け方を、初心者向けに丁寧に解説していきましょう。」

1. Const(定数)とは?

1. Const(定数)とは?
1. Const(定数)とは?

Const(定数)とは、プログラム内で絶対に変わらない値を表すための仕組みです。たとえば「円周率」「消費税率」「最大人数」など、プログラムの実行中に変わらない値を表現します。

Constを使うとコードの見通しが良くなり、「この値は変わらないんだ」という意図が明確になります。


Const Pi As Double = 3.14159
Const TaxRate As Double = 0.1

Console.WriteLine("円周率は " & Pi)
Console.WriteLine("消費税率は " & TaxRate)

円周率は 3.14159
消費税率は 0.1

Constで定義した値はプログラムが始まる前に固定されるので、途中で変更することはできません。

2. ReadOnlyとは?

2. ReadOnlyとは?
2. ReadOnlyとは?

ReadOnlyは「読み取り専用」の意味で、基本的には一度決まったら変更できない変数を表します。ただし、Constと違って実行時に値を決められるのが特徴です。


Public Class Sample
    Public ReadOnly CreatedAt As DateTime

    Public Sub New()
        CreatedAt = DateTime.Now ' 実行時に値を設定できる
    End Sub
End Class

Dim s As New Sample()
Console.WriteLine(s.CreatedAt)

このようにReadOnlyはコンストラクタ(初期化処理)で値を代入できるため、「プログラムを動かしてみないとわからない値」に使うことができます。

3. ConstとReadOnlyの違い

3. ConstとReadOnlyの違い
3. ConstとReadOnlyの違い

ConstとReadOnlyはどちらも「変更できない値」を表しますが、以下のように違いがあります。

項目 Const(定数) ReadOnly
値を決めるタイミング コンパイル時(プログラムを作るときに決まる) 実行時(プログラムが動いたときに決まる)
初期化方法 宣言と同時に代入が必須 宣言と同時、またはコンストラクタで代入可能
使う場面 円周率、固定の税率など変わらない値 現在時刻、外部から取得する設定値など実行時に決まる値

4. Constを使うと便利なケース

4. Constを使うと便利なケース
4. Constを使うと便利なケース

Constは次のようなケースで便利です。

  • 円周率(3.14159)や光の速度など普遍的な数値
  • アプリケーションで使う固定の設定値(例えば「最大ユーザー数」や「APIのバージョン番号」)
  • 計算式に繰り返し使う値をまとめて管理したいとき

Const MaxUsers As Integer = 100

Console.WriteLine("このシステムの最大利用者数は " & MaxUsers & " 人です")

このシステムの最大利用者数は 100 人です

5. ReadOnlyを使うと便利なケース

5. ReadOnlyを使うと便利なケース
5. ReadOnlyを使うと便利なケース

ReadOnlyは次のようなケースで便利です。

  • プログラムが動いて初めて決まる値(例:現在時刻、環境設定ファイルから読み込む値)
  • オブジェクトの作成時に一度だけ決まり、その後変更されない情報(例:登録日時、システム開始時刻)
  • 外部から与えられるけど一度セットしたら変更できない値

Public Class User
    Public ReadOnly RegisteredAt As DateTime

    Public Sub New()
        RegisteredAt = DateTime.Now
    End Sub
End Class

Dim u As New User()
Console.WriteLine("ユーザー登録日時: " & u.RegisteredAt)

6. ConstとReadOnlyの使い分けのポイント

6. ConstとReadOnlyの使い分けのポイント
6. ConstとReadOnlyの使い分けのポイント

最後に、ConstとReadOnlyの使い分けをまとめます。

  • 値が絶対に変わらない → Constを使う
  • 実行時に決まるけど、その後は変更させたくない → ReadOnlyを使う

このように意図を明確にすることで、VB.NETのプログラムは読みやすく、ミスが少ないものになります。

まとめ

まとめ
まとめ

VB.NETで変わらない値を扱うときは、ConstReadOnlyを使い分けることが重要です。Constはコンパイル時に値が固定され、絶対に変更されない値を表します。一方、ReadOnlyは実行時に値を決められるため、プログラムが動いて初めて決まる値を扱うときに便利です。これにより、意図を明確にしたプログラムを書くことができ、保守性や可読性が向上します。

具体的には、円周率や固定の税率、アプリケーションの設定値のように絶対に変わらない値にはConstを使用し、ユーザー登録日時や現在時刻、外部から取得する設定値のように実行時に決まる値にはReadOnlyを使います。また、ReadOnlyはコンストラクタで初期化できるため、オブジェクト生成時に一度だけ値を設定するパターンにも適しています。

サンプルプログラム:ConstとReadOnlyの活用例


' Constの例
Const Pi As Double = 3.14159
Const TaxRate As Double = 0.1

Console.WriteLine("円周率は " & Pi)
Console.WriteLine("消費税率は " & TaxRate)

' ReadOnlyの例
Public Class User
    Public ReadOnly RegisteredAt As DateTime

    Public Sub New()
        RegisteredAt = DateTime.Now
    End Sub
End Class

Dim u As New User()
Console.WriteLine("ユーザー登録日時: " & u.RegisteredAt)

円周率は 3.14159
消費税率は 0.1
ユーザー登録日時: 2025/12/08 14:30:00
先生と生徒の振り返り会話

生徒

「先生、ConstとReadOnlyって似ているように見えますけど、どう使い分ければ良いんですか?」

先生

「Constは絶対に変わらない値を表すときに使います。円周率や固定の税率など、プログラム実行前に決まる値です。」

生徒

「なるほど、じゃあReadOnlyは?」

先生

「ReadOnlyは実行時に値を決められ、初期化後は変更できません。ユーザー登録日時や現在時刻、外部から取得する設定値などに向いています。」

生徒

「コンストラクタで値を設定できるのが便利ですね!」

先生

「その通りです。これを理解しておくと、VB.NETのプログラムで変更すべきでない値を安全に管理でき、コードの可読性も保たれます。」

生徒

「値が絶対に変わらない場合はConst、実行時に決まる値はReadOnlyと覚えれば間違えなさそうです!」

先生

「そうですね。初心者でもこのポイントを押さえておけば、VB.NETで定数や読み取り専用の値を適切に扱えるようになります。」

カテゴリの一覧へ
新着記事
New1
VB.NET
VB.NETの変数とは?初心者向けに定義方法とよく使うデータ型を解説
New2
ASP.NET
ASP.NET MVCでモデルを定義してデータを扱う方法を初心者向けに解説
New3
ASP.NET
ASP.NETのマイグレーションを使ったスキーマ管理方法を完全解説!初心者でも安心
New4
ASP.NET
MacでASP.NET開発を始める方法|初心者向けにVisual Studioと.NET SDKを解説
人気記事
No.1
Java&Spring記事人気No1
ASP.NET
ASP.NETとは?初心者向けにできることと特徴をやさしく解説
No.2
Java&Spring記事人気No2
ASP.NET
ASP.NET WebFormsとは?基本概念と仕組みを初心者向けにやさしく解説
No.3
Java&Spring記事人気No3
VB.NET
VB.NETで日付を文字列に変換!ToStringやFormatの使い方を徹底解説
No.4
Java&Spring記事人気No4
VB.NET
VB.NETプログラムの書き方を基礎から学ぼう!初心者が覚えるべき文法とは?
No.5
Java&Spring記事人気No5
VB.NET
VB.NETで日付を加算・減算する方法を完全ガイド!AddDaysやAddMonthsの使い方
No.6
Java&Spring記事人気No6
VB.NET
VB.NETで日付と時間を比較・計算する方法!CompareとSubtractを完全解説
No.7
Java&Spring記事人気No7
VB.NET
VB.NETの配列(Array)の作り方と基本操作を徹底解説!初心者でもわかる入門ガイド
No.8
Java&Spring記事人気No8
VB.NET
VB.NETのインストール方法まとめ!Visual Studioを使った環境構築手順