大家帮我看看这个get,set方法的作用? public class CurrentUser { #region Instance private static CurrentUser m_Instnace;
public static CurrentUser Instance { get { if (m_Instnace == null) { m_Instnace = new CurrentUser(); }
return m_Instnace; } }
private CurrentUser() { } #endregion public string name {
get { return name; } set { name = value; }
} public UserInfo User { get; set; }
public Role Role { get; set; }
public Edition Edition { get; set; }
public List<Module> Modules { get; set; }
public bool CanUseModule(int moduleNO) { foreach (Module module in this.Modules) { if (module.ID == moduleNO) return true; } return false; } } 刚刚接触.net技术,想问一下,public Role Role { get; set; }这个get,set没有方法体,他有什么作用,而且CurrentUser本身也不是接口和抽象类,那么为什么要这样写,普通类中方法也可以没有方法体吗?
------解决方案--------------------
那是之前版本的写法 在 C# 3.0 和更高版本中,当属性的访问器中不需要其他逻辑时,自动实现的属性可使属性声明更加简洁。客户端代码还可通过这些属性创建对象。如下面的示例所示声明属性时,编译器将创建一个私有的匿名支持字段,该字段只能通过属性的get 和 set 访问器进行访问。
C# code
// Auto-Impl Properties for trivial get and set
public double TotalPurchases {get; set; }
------解决方案-------------------- 和C/C++以及Java不同,C#是一门快速发展的语言,C# 5.0和C# 1.1相比,早就有了天翻地覆的变化。
所以上坑爹的培训班之前最好搞清楚他们培训的是基于什么版本的C#,否则学了半天出来,你可能会发现看到C#代码还是像天书一样。
------解决方案--------------------
get 说明该属性可读 set说明该属性可写 比如 public double TotalPurchases {get; set; }