Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何调用在编译时被值替换的字符串?_C#_String - Fatal编程技术网

C# 如何调用在编译时被值替换的字符串?

C# 如何调用在编译时被值替换的字符串?,c#,string,C#,String,我以前做过这件事,后来忘记了,但我想在C#中再做一次。然而,我一辈子都记不起这种做法叫什么,所以我甚至在谷歌上都有困难 我在想一个字符串,它的字面意思是另一段文本。就像我的字符串是KNOTS_PER_mm一样,我想说它是0.00194384,然后简单地在代码中的任意位置键入KNOTS_PER_mm,而不是0.00194384。这也允许我在必要时更改该值 谢谢 编辑:意识到我本质上是在寻找用C来实现#define。一段文本映射到另一段文本,称为宏。而C#没有 但是有一个特定的工具可能适合您的任务-

我以前做过这件事,后来忘记了,但我想在C#中再做一次。然而,我一辈子都记不起这种做法叫什么,所以我甚至在谷歌上都有困难

我在想一个字符串,它的字面意思是另一段文本。就像我的字符串是KNOTS_PER_mm一样,我想说它是0.00194384,然后简单地在代码中的任意位置键入KNOTS_PER_mm,而不是0.00194384。这也允许我在必要时更改该值

谢谢


编辑:意识到我本质上是在寻找用C来实现#define。

一段文本映射到另一段文本,称为宏。而C#没有

但是有一个特定的工具可能适合您的任务-常量

public class Constants
{
     public const double KNOTS_PER_MILLIMETER =  0.00194384;
}


// in code:
var knots = millimeters * Constants.KNOTS_PER_MILLIMETER;

映射到另一段文本的一段文本称为宏。而C#没有

但是有一个特定的工具可能适合您的任务-常量

public class Constants
{
     public const double KNOTS_PER_MILLIMETER =  0.00194384;
}


// in code:
var knots = millimeters * Constants.KNOTS_PER_MILLIMETER;

是您要查找的关键字。请注意,常量属于一个类,因此如果您在同一个类中,您可以只使用“名称”,但在该类之外,您必须指定类名。如果你正在寻找像C++这样的宏替换,则通过代码> >定义< /C> >,C语言中没有这样的机制。常量和枚举排序用实际值替换名称,但它们比C++ +>代码>限定了(例如,可以用C++中的代码替换令牌,而C中不能使用),我很好奇知道(1)为什么要按长度划分速度;节是速度的单位,(2)数字0.00194384的来源。我看不出海里、小时和米之间有这样的比例。或者说,你为什么要把海里和公制混为一谈呢。你的申请是什么?现在有道理了。考虑将代码编写为:<代码> const双Meta EnrPrimaTialLead=1852;常数双秒Sperhour=3600;常数double MMPerSecondToKnots=秒秒/秒/(1000*米/秒)如果你这样写的话,(1)所有“神奇”常数的含义变得非常清楚,(2)如果你需要,你可以使用更多有用的常数。我还注意到,这些都是正确使用常数的极好例子。常数应该是永远不变的量。从现在到永远,每海里的米数是1852,所以它应该是一个常数。不要将常量用于版本号、公司名称或黄金价格等内容;这些都改变了。是您要查找的关键字。请注意,常量属于一个类,因此如果您在同一个类中,您可以只使用“名称”,但在该类之外,您必须指定类名。如果你正在寻找像C++这样的宏替换,则通过代码> >定义< /C> >,C语言中没有这样的机制。常量和枚举排序用实际值替换名称,但它们比C++ +>代码>限定了(例如,可以用C++中的代码替换令牌,而C中不能使用),我很好奇知道(1)为什么要按长度划分速度;节是速度的单位,(2)数字0.00194384的来源。我看不出海里、小时和米之间有这样的比例。或者说,你为什么要把海里和公制混为一谈呢。你的申请是什么?现在有道理了。考虑将代码编写为:<代码> const双Meta EnrPrimaTialLead=1852;常数双秒Sperhour=3600;常数double MMPerSecondToKnots=秒秒/秒/(1000*米/秒)如果你这样写的话,(1)所有“神奇”常数的含义变得非常清楚,(2)如果你需要,你可以使用更多有用的常数。我还注意到,这些都是正确使用常数的极好例子。常数应该是永远不变的量。从现在到永远,每海里的米数是1852,所以它应该是一个常数。不要将常量用于版本号、公司名称或黄金价格等内容;这些事情都发生了变化。我刚刚记得我从C或C++中想到了一个定义类型的情况。宏,你是对的!谢谢你的建议。@PartyTurtle:记住,在C中,常数使用的是
CamelCase
,而不是
SHOUTY\u SNAKE\u CASE
。你想要
KnotsPerMillimeter
。我的意思是说
PascalCase
当然<代码> CAMELCASE <代码>从一个小写字母开始。我刚刚记得我从C或C++中想到了一个定义类型的情况。宏,你是对的!谢谢你的建议。@PartyTurtle:记住,在C中,常数使用的是
CamelCase
,而不是
SHOUTY\u SNAKE\u CASE
。你想要
KnotsPerMillimeter
。我的意思是说
PascalCase
当然
camelCase
以小写字母开头。