【问题标题】:Rename "value" variable in set accessor of a property in C#在 C# 中属性的集合访问器中重命名“值”变量
【发布时间】:2020-07-21 18:49:51
【问题描述】:

在 VB.NET 中,您可以更改此变量的名称。你也可以在 C# 中做到这一点,还是它总是被称为 value

例子:

    Private _SomeVariable As String
    Public Property SomeValue() As String
        Get
            Return _SomeVariable
        End Get
        Set(ByVal foo As String) ' This is what I mean
            _SomeVariable = foo
        End Set
    End Property

我习惯用 VB.NET 编写代码,但最终想改用 C#,并尝试了解 C# 的所有差异和特性。

我知道这没什么大不了的,但是 Telerik 例如在将 VB.NET 转换为 C# 时并没有意识到这一点,如果您也有一个名为 foo 的类变量(上面提到的例子)。

【问题讨论】:

  • Telerik 可能没有考虑允许更改参数名称,因为他们没想到有人会疯狂到这样做。
  • 如果您还没有这样做,您应该在这里阅读 Anthony Green 的“VB.NET 和 C# 之间的差异的详尽列表”:anthonydgreen.net/2019/02/12/…

标签: c# .net vb.net


【解决方案1】:

设置的参数始终命名为value,您无法更改它。如果您的代码中碰巧有一个冲突的名称,您可以使用完全限定的名称来使用它:

class MyClass
{
    private string value;

    public string Value
    {
        get { return value; }
        set { this.value = value; }  // this.value is the private field
    }
}

【讨论】:

    【解决方案2】:

    在 C# 中,新值总是通过value 访问。没有语法可以编写 setter 来接受自定义名称。

    Using Properties (C# Programming Guide)

    set 访问器类似于返回类型为 void 的方法。它使用一个隐式参数称为值,其类型是属性的类型..

    【讨论】:

      【解决方案3】:

      value 是关键字,不能更改

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-03-31
        • 2019-11-07
        • 1970-01-01
        • 1970-01-01
        • 2018-05-20
        • 1970-01-01
        • 2021-07-22
        相关资源
        最近更新 更多