C#:为具有不同名称(快捷方式)的变量创建属性?
Posted
技术标签:
【中文标题】C#:为具有不同名称(快捷方式)的变量创建属性?【英文标题】:C# : Make a property for a variable with a different name (shortcut)? 【发布时间】: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 _aVar
比public int AVar get; set;
更清晰?
如果你不想在 get;set; 中做任何事情然后保留它 AVar get;set; 并删除 _aVar;如果您不想在 get;set; 中做某种工作,将 _aVar 链接到 AVar 是完全没有意义的;
@JayMee : "return (a_Var)" -> 我的学校编码约定习惯^^
【参考方案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 请查看我修改后的答案 - 您可能希望取消“已回答”的勾号!以上是关于C#:为具有不同名称(快捷方式)的变量创建属性?的主要内容,如果未能解决你的问题,请参考以下文章
为具有不同名称和不同@class 属性值的多个元素创建一个包装器元素