如何在 Visual C# 中像 C 中的 #define 一样定义常量?

发布于 2024-08-13 06:08:58 字数 129 浏览 1 评论 0原文

在 C 中,您可以定义这样的常量

#define NUMBER 9

,以便程序中出现的任何 NUMBER 都会被替换为 9。但 Visual C# 不会这样做。它是如何完成的?

In C you can define constants like this

#define NUMBER 9

so that wherever NUMBER appears in the program it is replaced with 9. But Visual C# doesn't do this. How is it done?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

那请放手 2024-08-20 06:08:58
public const int NUMBER = 9;

您需要将其放在某个类中,用法为 ClassName.NUMBER

public const int NUMBER = 9;

You'd need to put it in a class somewhere, and the usage would be ClassName.NUMBER

望喜 2024-08-20 06:08:58
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;  
}
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;  
}
放飞的风筝 2024-08-20 06:08:58

您无法在 C# 中执行此操作。请改用 const int

You can't do this in C#. Use a const int instead.

仄言 2024-08-20 06:08:58

查看 MSDN 上的如何:在 C# 中定义常量

在 C# 中,#define 预处理器
指令不能用于定义
常数的方式通常是
用于 C 和 C++。

Check How to: Define Constants in C# on MSDN:

In C# the #define preprocessor
directive cannot be used to define
constants in the way that is typically
used in C and C++.

柠檬心 2024-08-20 06:08:58

C语言中:#define(例如#define counter 100)

汇编语言中:equ(例如counter equ 100)

C#语言中:< a href="https://msdn.microsoft.com/en-us/library/yt3yck0x.aspx" rel="nofollow noreferrer">根据 msdn 参考:
您可以使用#define 来定义符号。当您使用该符号作为传递给 #if 指令的表达式时,该表达式的计算结果将为 true,如以下示例所示:

#define DEBUG

#define 指令不能用于声明常量值,这在 C 和 C++ 中通常是这样做的。 C# 中的常量最好定义为类或结构的静态成员。如果您有多个这样的常量,请考虑创建一个单独的“常量”类来保存它们。

in c language: #define (e.g. #define counter 100)

in assembly language: equ (e.g. counter equ 100)

in c# language: according to msdn refrence:
You use #define to define a symbol. When you use the symbol as the expression that's passed to the #if directive, the expression will evaluate to true, as the following example shows:

# define DEBUG

The #define directive cannot be used to declare constant values as is typically done in C and C++. Constants in C# are best defined as static members of a class or struct. If you have several such constants, consider creating a separate "Constants" class to hold them.

岁月苍老的讽刺 2024-08-20 06:08:58

在 C# 中,根据 MSDN 库,我们有“const”关键字,它可以完成其他语言中“#define”关键字的工作。

“...当编译器在 C# 源代码中遇到常量标识符(例如,月份)时,它会将文字值直接替换为它生成的中间语言 (IL) 代码。”
https://msdn.microsoft.com/en-us/library/ms173119。 aspx

在声明时初始化常量,因为没有更改它们。

public const int cMonths = 12;

In C#, per MSDN library, we have the "const" keyword that does the work of the "#define" keyword in other languages.

"...when the compiler encounters a constant identifier in C# source code (for example, months), it substitutes the literal value directly into the intermediate language (IL) code that it produces."
( https://msdn.microsoft.com/en-us/library/ms173119.aspx )

Initialize constants at time of declaration since there is no changing them.

public const int cMonths = 12;
黑寡妇 2024-08-20 06:08:58

什么是“Visual C#”?没有这样的事情。只是 C# 或 .NET C# :)

另外,Python 的常量约定 CONSTANT_NAME 在 C# 中并不常见。我们通常根据MSDN标准使用CamelCase,例如public const string ExtractedMagicString = "vs2019";

来源:在 C# 中定义常量

What is the "Visual C#"? There is no such thing. Just C#, or .NET C# :)

Also, Python's convention for constants CONSTANT_NAME is not very common in C#. We are usually using CamelCase according to MSDN standards, e.g. public const string ExtractedMagicString = "vs2019";

Source: Defining constants in C#

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文