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 _aVarpublic 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 属性值的多个元素创建一个包装器元素

如何在c#中使用具有相同名称但不同属性和结构的元素反序列化XML

C# 设定菜单快捷键

C#索引器

C#索引器

如何在 C# 中使用命令行参数创建应用程序快捷方式(.lnk 文件)