C#.net でプログラムを作成中です。
C++では定数等を#defineで定義していましたが、C#ではDefineは無いとの事です。
C#でC++の#Define に相当する事は出来ないのでしょうか。
やりたい事は 長い同じコマンドを別の文字で代替する事です。
もしC#に#Define文があったとして、以下の様な事を行いたいのです。
#Define NL printf("\n");
NL
このコーディングが展開した時、
pritf("\n");
と展開される。
この様な事が出来る文をご存知の方、若しくはこの様な事は出来ないと言う事をご存知の方、よろしく御回答下さい。
よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
定数の定義では無く、どちらかというと「マクロ」としての機能をC#で使いたいと言うことですね。
結論から言うと、C++の#defineを使ったマクロは、C#では利用できません。
このようなマクロはバグの元になりやすいため、意図的にC#から削られています。
もし、汎用的に使えるような引数を渡したい…という事であれば、ジェネリックなどを使うと良いですよ。
ちなみに、単純な定数の定義であればconst、列挙体であればenumを使って定義できます。
ご回答、ありがとうございます。
C#ではC++の様なDefineは使用出来ない事が理解出来ました。
今回の目的は引数を渡すと言う事では無く、単純に他のライブラリー等の呼び出しを、自分のプログラムに関連した名前にしたかったものです。
しかし、代入が出来ないのであれば仕方がありませんので指定された名称で呼び出します。
ありがとうございました。
No.2
- 回答日時:
#1です。
>やりたい事は 長い同じコマンドを別の文字で代替する事です。
特にマクロが利用したいわけでは無く、コマンド名(メソッド名)を短くして使いたいと言うことですね。
このような場合、別のメソッドを作って、その中から長い名前のメソッドを呼ぶようにすれば、とりあえず実現できます。
ただし、メソッドの括弧までは省略できません。
▼例
public void NL()
{
Console.WriteLine(); // printf("\n")に相当
}
public void 任意のメソッド()
{
// 処理~
NL();
// 処理~
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# LU分解法のピボット選択機能実装について(C言語・gcc-9) 1 2022/07/22 15:20
- C言語・C++・C# C言語:数値の桁数指定についての質問です。 8 2022/05/26 23:53
- C言語・C++・C# LU分解法のピボッティングについて(C言語/gcc-9) 3 2022/07/11 23:10
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- その他(プログラミング・Web制作) Arduino UNO のC言語 2 2023/04/18 19:42
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- C言語・C++・C# C言語初心者です、、、お助けください 2 2023/03/14 20:08
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
final修飾子を使っているのに、...
-
Refreshメソッドの使い方
-
onClickで関数呼出し後に、結果...
-
エクセルVBAにおけるON TIMEメ...
-
マスターページからコンテンツ...
-
C# 演算 最大値 最小値 表現の仕方
-
(String args[])というメッソ...
-
boolean型のフィールドとゲッタ...
-
エクリプス アウトラインビュ...
-
『増加する』メソッド名は?
-
staticメソッドの長所短所
-
eclipse-Tomcatでのデバッグに...
-
drawStringで文字間隔の調整
-
javascriptからjavaを呼び出したい
-
コマンドプロンプト実行後に画...
-
DataGridViewでセルクリックイ...
-
「CA2202: オブジェクトを複数...
-
エクセルのマクロでプリンタを...
-
Excel VBA シェイプの原型のサ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
エクセルVBAにおけるON TIMEメ...
-
【sendkeysメソッドが動かずに...
-
コマンドプロンプト実行後に画...
-
onClickで関数呼出し後に、結果...
-
DataGridViewでセルクリックイ...
-
Labelコントロールに数字を代入...
-
ExcelのxlDialogInsertPictureで。
-
final修飾子を使っているのに、...
-
JSPで<SELECT>の中にDBから持っ...
-
VBPをダブルクリックするとたま...
-
Excel VBA でExcelを終了したい...
-
Refreshメソッドの使い方
-
ウィンドウを最前面にできません
-
javascriptからjavaを呼び出したい
-
VB.netで、シリアル通信のタイ...
-
mainメソッドのthrows節で設定...
-
VBAでSaveAs使用し、指定してい...
-
PDFファイルから別ウィンドウで...
-
Application.Wait の参照設定
おすすめ情報