大家帮我看看这个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 访问器进行访问。
// Auto-Impl Properties for trivial get and setpublic double TotalPurchases {get; set; }
[解决办法]
和C/C++以及Java不同,C#是一门快速发展的语言,C# 5.0和C# 1.1相比,早就有了天翻地覆的变化。
所以上坑爹的培训班之前最好搞清楚他们培训的是基于什么版本的C#,否则学了半天出来,你可能会发现看到C#代码还是像天书一样。
[解决办法]
get 说明该属性可读 set说明该属性可写
比如 public double TotalPurchases {get; set; }
得到属性值 double temp_value=TotalPurchases ;//会调用属性的get得到其值
TotalPurchases =2.0;会调用属性的set方法,将值保存设置上
[解决办法]