web-dev-qa-db-ja.com

Cの#defineのようなVisual C#で定数を定義する方法は?

Cでは、このような定数を定義できます

#define NUMBER 9

nUMBERがプログラムのどこに出現しても、9に置き換えられます。しかし、Visual C#はこれを行いません。どうやって?

32
neuromancer
public const int NUMBER = 9;

どこかのクラスに配置する必要があり、使用法はClassName.NUMBER

61
Jimmeh

C#でこれを行うことはできません。使う - const int 代わりに。

16
Mark Byers
static class Constants
{
    public const int MIN_LENGTH = 5;
    public const int MIN_WIDTH  = 5; 
    public const int MIN_HEIGHT = 6;
}

// elsewhere
public CBox()
{
    length = Constants.MIN_LENGTH; 
    width  = Constants.MIN_WIDTH; 
    height = Constants.MIN_HEIGHT;  
}
14
Rush

チェック 方法:C#で定数を定義する MSDN:

C#では、#defineプリプロセッサディレクティブを使用して、CおよびC++で通常使用される方法で定数を定義することはできません。

13
Vinz

c言語の場合:#define(例:#define counter 100)

アセンブリ言語で:equ(例:counter equ 100)

c#言語: msdn refrenceによる#defineを使用してシンボルを定義します。 #ifディレクティブに渡される式としてシンボルを使用すると、次の例に示すように、式はtrueと評価されます。

# define DEBUG

#defineディレクティブは、CおよびC++で一般的に行われているように、定数値を宣言するために使用できません。 C#の定数は、クラスまたは構造体の静的メンバーとして最も適切に定義されます。そのような定数が複数ある場合は、それらを保持するために別の「定数」クラスを作成することを検討してください。

1
Alireza

C#では、MSDNライブラリごとに、他の言語で「#define」キーワードの機能を実行する「const」キーワードがあります。

「... C#ソースコード(たとえば、月)で定数識別子に遭遇すると、コンパイラは生成する中間言語(IL)コードにリテラル値を直接代入します。」 ( https://msdn.Microsoft.com/en-us/library/ms173119.aspx

定数は変更しないため、宣言時に定数を初期化します。

public const int cMonths = 12;
0
Bobby