C#で列挙型(Enum)にカスタム値を設定する方法
C#の列挙型(Enum)は、年、製品、月、季節など、名前付き定数の集合を格納するためのデータ型です。コードの可読性を高め、関連する定数をひとまとめに管理できる便利な機能です。
通常、Enumの各定数にはデフォルトで0から始まる整数値が自動的に割り当てられ、宣言された順番に1ずつ増加していきます。列挙型は固定された定数のセットを持つため、ループ処理などでの走査も簡単に行えます。
しかし、必ずしも0から始める必要はありません。開始インデックスを変更したり、各定数に任意の値を明示的に指定してカスタマイズすることも可能です。
以下の例では、デフォルトの0ではなく、20というカスタム値を開始値として設定しています。
サンプルコード
using System;
public class Demo {
public enum Vehicle { Car = 20, Motorcycle, Bus, Truck }
public static void Main() {
int a = (int)Vehicle.Car;
int b = (int)Vehicle.Motorcycle;
int c = (int)Vehicle.Bus;
int d = (int)Vehicle.Truck;
Console.WriteLine("Car = {0}", a);
Console.WriteLine("Motorcycle = {0}", b);
Console.WriteLine("Bus = {0}", c);
Console.WriteLine("Truck = {0}", d);
}
}実行結果
Car = 20 Motorcycle = 21 Bus = 22 Truck = 23
このように、最初の定数「Car」に「= 20」と値を代入すると、以降の定数(Motorcycle、Bus、Truck)には自動的に21、22、23と連続した値が割り当てられます。特定の数値が意味を持つ場面(例:ステータスコードや既存システムとの互換性が必要な場合など)では、このカスタマイズ機能が非常に役立ちます。
-
React.jsでフォームを扱う方法:制御コンポーネント(Controlled Components)徹底解説
通常のHTMLフォームでは、inputなどのフォーム要素が自身の値を内部的に保持しており、送信ボタンが押されたタイミングでまとめてデータが送信されます。シンプルなHTMLフォームの例<!DOCTYPE html> <html> <head> <title>Form Example</title> </head> <body> <form> <label> User Name: <input type="text" name=&qu
-
ちょうどk本の辺で到達する最短経路を求めるアルゴリズム
重み付き有向グラフが与えられ、各頂点間の辺の重みがコスト行列として表されているとします。さらに、始点となる頂点 u と終点となる頂点 v、そして使用する辺の本数 k も与えられます。この課題は、ちょうど k 本の辺を使って頂点 u から頂点 v へ移動するときの最短距離を求めることです。問題のアプローチこの問題を解くには、始点 u から出発し、隣接するすべての頂点へ順に移動していきます。その際、再帰呼び出しのたびに残りの辺数 k を 1 ずつ減らしながら探索を進めることで、正確に k 本の辺を使う経路の中から最小のコストを見つけ出します。入力と出力Input: グラフのコスト行列 0 10 3