c# - 如何使用 C# 保留关键字作为不带 @ 前缀的属性名称?

标签 c# keyword reserved

我需要设计一个类,其中一个属性名称必须是 return,但是当我创建一个类似 return 的属性名称时,我得到了一个错误。

经过一番研究,我发现可以通过在 C# 中添加 @ 前缀,或将其括在方括号 []< 中,将保留关键字用作属性或变量名 在 VB.NET 中。例如:

var @class = new object();

这是我的类设计代码。

public class Person
{
    string _retVal;

    public string @return
    {
        get { return _retVal; }
        set { _retVal = value; }
    }
}

...
Person p = new Person();
p.@return = "hello";

现在我没有收到任何错误,但是当我尝试访问像 return 这样的属性名称时,我需要写像 @return 这样的名称,但我没有这样做不想。我想访问属性名称,如 p.return = "hello"; 而不是 p.@return = "hello"; 所以我想知道是否有有什么办法吗?

最佳答案

你不能。这是一个保留关键字。那意味着“你不能”。对比“上下文关键字”,后者通常意味着“我们后来添加了这个,所以我们需要它在一些预先存在的场景中工作”。

这里的适度答案是:使用@return

这里更好的答案是:重命名您的属性(property)。也许 ReturnValue

还有一个选项,比如 Return - 但您可能还需要考虑不区分大小写的语言。

关于c# - 如何使用 C# 保留关键字作为不带 @ 前缀的属性名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10912631/

相关文章:

javascript - 无法使用 ASP.NET 获取输入值

c# - 弹出 - 阻止了带有来源的框架

amazon-web-services - 如何检查 AWS 中预留了哪个实例?

php - 撇号和引号不会从表单添加到 mysql

c# - __builtin_popcount - 这在 C# 中是否等效?

c# - 由于模型关系而添加 Controller 时出错

Python 2.5 作为关键字有多个异常(exception)

clojure - 何时以及如何在 Clojure 中使用独立层次结构?

ios - 当与 App Title 不同时,我是否应该将显示名称包含为 App Store 关键字?

python - 为什么 urllib.parse.quote 对 url 中的非保留字符进行编码?