相关疑难解决方法(0)

吸气剂,制定者和属性最佳实践.Java与C#

我现在正在上C#课程,我正在努力寻找最好的做事方式.我来自Java背景,因此我只熟悉Java最佳实践; 我是C#新手!

在Java中,如果我有私有财产,我会这样做;

private String name;

public void setName(String name) {
   this.name = name;
}

public String getName() {
   return this.name;
}
Run Code Online (Sandbox Code Playgroud)

在C#中,我看到有很多方法可以做到这一点.

我可以像Java一样做:

private string name;

public void setName(string name) {
   this.name = name;
}

public string getName() {
   return this.name;
}
Run Code Online (Sandbox Code Playgroud)

或者我可以这样做:

private string name;

public string Name {
   get { return name; }
   set { name = value; }
}
Run Code Online (Sandbox Code Playgroud)

要么:

public string Name { get; set; }
Run Code Online (Sandbox Code Playgroud)

我应该使用哪一个,每种方法涉及哪些警告或细微之处?在创建类时,我遵循我从Java中了解的一般最佳实践(特别是阅读Effective Java).因此,例如,我赞成不变性(仅在必要时提供setter).我很想知道这些实践如何适应C#中提供setter和getter的各种方法; 基本上,我如何将Java世界的最佳实践转换为C#?

编辑

我发布这篇文章是对Jon Skeet答案的评论,但后来很久了:

那么一个非平凡的财产(也许,可能有重要的处理和验证)?我是否仍然可以通过公共属性公开它,但是逻辑封装在get和 …

c# java properties getter-setter

90
推荐指数
6
解决办法
8万
查看次数

标签 统计

c# ×1

getter-setter ×1

java ×1

properties ×1