- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C#.net Define文)
C#で#Define文に相当するものはあるか?
このQ&Aのポイント
- C#.netでプログラムを作成中です。C++では定数等を#defineで定義していましたが、C#ではDefineは無いとの事です。C#でC++の#Defineに相当する事は出来ないのでしょうか。
- C#で長い同じコマンドを別の文字で代替するためには#Define文は使えないようです。C++.NETでは定数を#defineで定義できますが、C#.NETではこの機能はありません。
- C#で同様の機能を実現するためには、別の方法を探す必要があります。C#では定数をクラス内に定義することで同じ効果を得ることができます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
定数の定義では無く、どちらかというと「マクロ」としての機能をC#で使いたいと言うことですね。 結論から言うと、C++の#defineを使ったマクロは、C#では利用できません。 このようなマクロはバグの元になりやすいため、意図的にC#から削られています。 もし、汎用的に使えるような引数を渡したい…という事であれば、ジェネリックなどを使うと良いですよ。 ちなみに、単純な定数の定義であればconst、列挙体であればenumを使って定義できます。
その他の回答 (1)
- neuron-x
- ベストアンサー率52% (139/266)
回答No.2
#1です。 >やりたい事は 長い同じコマンドを別の文字で代替する事です。 特にマクロが利用したいわけでは無く、コマンド名(メソッド名)を短くして使いたいと言うことですね。 このような場合、別のメソッドを作って、その中から長い名前のメソッドを呼ぶようにすれば、とりあえず実現できます。 ただし、メソッドの括弧までは省略できません。 ▼例 public void NL() { Console.WriteLine(); // printf("\n")に相当 } public void 任意のメソッド() { // 処理~ NL(); // 処理~ }
お礼
ご回答、ありがとうございます。 C#ではC++の様なDefineは使用出来ない事が理解出来ました。 今回の目的は引数を渡すと言う事では無く、単純に他のライブラリー等の呼び出しを、自分のプログラムに関連した名前にしたかったものです。 しかし、代入が出来ないのであれば仕方がありませんので指定された名称で呼び出します。 ありがとうございました。