读书人

大家帮小弟我看看这个getset方法的作

发布时间: 2012-09-04 14:19:30 作者: rapoo

大家帮我看看这个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 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方法,将值保存设置上
[解决办法]
探讨
那么如何去调用相应的get,set方法。

读书人网 >C#

热点推荐