【问题标题】:C# : Make a property for a variable with a different name (shortcut)?C#:为具有不同名称(快捷方式)的变量创建属性?
【发布时间】:2015-09-29 09:09:56
【问题描述】:

C# 中属性的正常用法是:

private int aVar;
public int AVar { get; set; }

或者只是

public int AVar { get; set; }

但为了清楚起见,我更喜欢在私有属性之前加上 _ :

private int _aVar;

然后是一个属性:

public int AVar
{
    get
    {
        return (_aVar);
    }
    set
    {
        _aVar = value;
    }
}

有没有办法做一些捷径来获得类似的东西:

private int _aVar;
public int AVar { get; set; } : link _aVar

?

(除了:“使用 Visual Studio sn-p 你这个懒惰的人。”或“在 C# 中,每个人都使用 aVar 和 AVar,所以不要使用你的愚蠢 _,一切都会好起来的。”如果可能的话)

【问题讨论】:

  • 我不知道第一个示例是什么意思,但 aVar 没有做任何事情。不,你不能做后者。你想解决什么问题?
  • @Xaruth SA1309 is silly, "everyone" 对私有成员使用下划线前缀。
  • 您能否详细说明为什么您认为private int _aVar; public int AVar { get; set; } : link _aVarpublic int AVar { get; set; } 更清晰?
  • 如果你不想在 get;set; 中做任何事情然后保留它 AVar {get;set;} 并删除 _aVar;如果您不想在 get;set; 中做某种工作,将 _aVar 链接到 AVar 是完全没有意义的;
  • @JayMee : "return (a_Var)" -> 我的学校编码约定习惯^^

标签: c# properties


【解决方案1】:

简而言之,没有。

我假设您知道 Visual Studio sn-p propfull [tab] [tab]。这将为您创建“典型”成员和属性语法。

【讨论】:

  • 好的,谢谢,正如我在 cmets 中所说,这比其他任何事情都更加好奇。
  • @ashtrail - 好奇心没有错。尝试 C# 能做什么和不能做什么是很好的,在我看来这不是一个坏问题。
【解决方案2】:

在 C#6 中,只读属性有一个简写形式,但可写属性没有。

代替

public int[] AVar
{
    get
    {
        return (_aVar);
    }
}

你可以放

public int[] AVar => _aVar;

这仅适用于只读属性。 (顺便说一下,您通常不应该使数组属性可写。)

这就是你要找的那种捷径吗?

但是,请注意,对于您的具体示例,您不妨只使用自动属性:

public int[] AVar { get; set; }

【讨论】:

  • 完美!这就是我想知道的。
  • 这不会导致只读属性而不是读写属性吗?
  • @Rawling Er,是的。我已经澄清了我的答案。
  • @MatthewWatson 很公平:)
  • @ashtrail 请查看我修改后的答案 - 您可能希望取消“已回答”的勾号!
猜你喜欢
  • 2021-07-10
  • 2016-07-27
  • 2011-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-27
相关资源
最近更新 更多