VB.NETで定数を使用する方法とは?Constの使用場面と使用方法
- システム
エンジニア - VB.NETでの定数使用方法を教えてください。
- プロジェクト
マネージャー - VB.NETではConstを使って定数を宣言します。使用方法を紹介しますね。
VB.NETで定数を使用する方法とは?Constを使ってみよう
今回は、VB.NETにおける定数の使用方法について説明します。
VB.NETで定数を宣言する場合、Constを使います。本記事では定数を使用する意図を説明してから、Constの宣言方法、使用方法についてご紹介します。また、Constとも似ている、定数の宣言で用いることのできるReadonly修飾子についても、Constと比較しながら紹介します。
VB.NETで定数の使用方法を知りたい方はぜひご覧ください。
Constの使用場面
Constの使用場面について、定数を宣言しないと、保守性が悪く、修正漏れ、工数増加の要因にもなってしまうというこということと、基本的に変わることのない、プログラム中で変えてはならない値を定数として宣言することで解決することを解説していきます。
定数を宣言しないと?
たとえば円周率、1分あたりの秒数、消費税など、ある不変の値をプログラムの中で使用するケースは珍しくありません。
ソースコードを見てみましょう。
変数で定義した半径と円周率3.14を使って、円の円周、面積の計算結果をコンソールに表示するプログラムです。
1
2
3
4
5
6
7
8
9
|
' 変数宣言
' 半径
Dim radius AS Integer = 10
' コンソール出力
Console.WriteLine("円周:" & (2 * 3.14 * radius))
Console.WriteLine("面積:" & (3.14 * radius * radius))
|
見てわかるように、3.14という値がプログラムの中で何度も使用されています。例に挙げた3.14という数値は、おおよその人が円周率と解釈できる有名な定数値のため、プログラム作成者以外の人がソースコードを見た時に、3.14がどのような意味を持った値か把握できるかもしれません。
しかし円周率以外の、たとえば消費税を使用した場合は、0.08や0.1、もしくは8や10といった数字がプログラムに登場することになるでしょう。値だけでは、数値が何を表しているのかがわかりにくくなってしまいます。
また、円周率を3.14から3.14159と変更したいケースもあるでしょう。そんな時、上記のコーディングならば、ソースコードに登場するすべての円周率3.14を一つずつ修正する必要があり、保守性が悪く、修正漏れ、工数増加の要因にもなってしまいます。
定数を宣言することで解決
そんな時、定数を宣言することで解決できます。円周率の例で挙げれば、3.14を定数「PI」として宣言し、定数という箱の中に値をセットすることで、コードを見ただけで値の意味が把握しやすくなります。
そして値を変えたい場合は宣言部分を修正するだけで、一括で容易に定数値を変更することができます。
プログラム中で何度も書き換えられる変数とは異なり、定数は一度宣言した値をプログラム中で変更することができません。そのため、定数という名のとおり、基本的に変わることのない、プログラム中で変えてはならない値を定数として宣言し、利用しましょう。
VB.NETではConstで定数が宣言できます。それではConstの利用方法について解説していきます。
Constの使用方法
VB.NETではConstを用いて、次のように定数を宣言します。
1
2
3
|
Const 定数名 AS 型 = 値
|
定数名は小文字でも宣言可能ですが、大文字で宣言するケースが多いです。大文字にすることで小文字の変数と区別が付き、ソースコードの可読性が上がります。そのため定数を宣言する時は大文字を使用しましょう。
また、Public、Friend、Protected、Protected Friendとして、適切なコードアクセスレベルで宣言することもできます。
次のソースコードはPublicで定数を宣言する例です。
1
2
3
|
Public Const 定数名 AS 型 = 値
|
アクセスレベルを省略した場合はPrivateとして扱われます。
複数の定数を宣言することもできます。
次のように、一行に複数記述することで可能になります。
1
2
3
|
Const 定数名1 As 型1 = 値1, 定数名2 As 型2 = 値2,... , 定数名N As 型N = 値N
|
とはいえ、上記の記述では可読性が下がるため、複数宣言する場合であっても、なるべく一つずつ、次のように複数行に渡って記述しましょう。
1
2
3
4
5
6
|
Const 定数名1 As 型1 = 値1
Const 定数名2 As 型2 = 値2
・・・
Const 定数名N As 型N = 値N
|
それでは定数を使ったプログラムを見てみましょう。
先ほどのプログラムと同様、変数の半径を使って、円の円周、面積の計算結果をコンソール表示するプログラムです。円周率3.14をConst定数として宣言しました。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
' 定数宣言
' 円周率
CONST PI AS Decimal = 3.14
' 変数宣言
' 半径
Dim radius AS Integer = 10
' コンソール出力
Console.WriteLine("円周:" & (2 * PI * radius))
Console.WriteLine("面積:" & (PI * radius * radius))
|
上記プログラムの実行結果は次のようになります。
円周:62.8
面積:314
円周率3.14をConst定数として宣言し、プログラム中で何度も使用しています。PIという定数名を付けたため、プログラム作成者以外の人がソースコードを見た時も値の意味が把握しやすいでしょう。
3.14を3.14159に変更したい場合は、定数の宣言部分を下記のように変更するだけで修正が済みます。
1
2
3
4
5
6
|
' 定数宣言
CONST PI AS Decimal = 3.14159
・・・省略・・・
|
以上、VB.NETにおけるConstの使い方です。
続いて、Const以外の、定数の宣言に使用できるReadonly修飾子についてご紹介します。
Readonly修飾子
VB.NETではConstのほか、Readonly修飾子を用いて定数を宣言することができます。
次のように宣言します。
1
2
3
|
Private Readonly 定数名 AS 型 = 値
|
Constの時と同じく、定数名は大文字が望ましいでしょう。
Constはクラスメンバのほか、ローカル変数としても宣言可能ですが、Readonly修飾子はクラスメンバとしてのみ宣言が可能であることにご注意ください。
ローカル変数の意味については、参考サイトURLをご参考にしてください。
Constは宣言時に値が確定する必要がありますが、Readonly修飾子はコンストラクタ内で値を書き換えることができる特徴があります。次のプログラムのように、コンストラクタ内で値をセットできますが、Constで定義した場合はエラーになります。
1
2
3
4
5
6
7
8
|
Public Class Class1
Public ReadOnly SAMPLE As String
Sub New(sample As String)
SAMPLE = sample
End Sub
End Class
|
そしてプログラム実行時に値が埋め込まれるReadonly修飾子と違い、Constはコンパイル時点で値が埋め込まれるため、実行速度はReadonly修飾子に比べて早いという特徴があります。
以上説明したように、ConstとReadonly修飾子それぞれに長所と短所があります。実行速度を重視する場合はConstを、コンストラクタで値を確定したい場合はReadonly修飾子を、といったように、それぞれの長所と短所を理解したうえで、どちらを利用するべきか決めましょう。
- システム
エンジニア - VB.NETで定数を使用する方法がわかりました。
- プロジェクト
マネージャー - ConstとReadonlyの特徴やメリット・デメリットを理解することも大切です。実際にコードを書いて、さらに理解を深めましょう。
VB.NETでConstを使ってみよう
いかがだったでしょうか。
VB.NETではConstを使って定数を宣言することができます。また、Constの他にもReadonly修飾子を使うことでも定数を宣言することが可能です。
プログラムで何らかの固定値を使う場合は、誰が見ても数字の意味が把握できるよう、ソースコードの可読性、そして保守性を高めるためにも、ぜひ定数を定義して使用してみましょう。
以上、VB.NETでConstを使う方法でした。ぜひ参考にしてください。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。
-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。
新着案件New Job
-
開発エンジニア/東京都品川区/【WEB面談可】/在宅ワーク
月給29万~30万円東京都品川区(大崎駅) -
遠隔テストサービス機能改修/JavaScript/東京都港区/【WEB面談可】/テレワーク
月給45万~60万円東京都港区(六本木駅) -
病院内システムの不具合対応、保守/東京都豊島区/【WEB面談可】/テレワーク
月給30万~30万円東京都豊島区(池袋駅) -
開発/JavaScript/東京都豊島区/【WEB面談可】/テレワーク
月給50万~50万円東京都豊島区(大塚駅) -
債権債務システム追加開発/東京都文京区/【WEB面談可】/在宅勤務
月給62万~67万円東京都文京区(後楽園駅) -
PMO/東京都豊島区/【WEB面談可】/在宅勤務
月給55万~55万円東京都豊島区(池袋駅)