C#中Get和Set的使用.
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/09 05:11:21
C#中Get和Set的使用.
我一直想不通C#中可以自定义变量,可以定义public、private、protected等类型,那为什么要用Get和Set去定义属性呢,自己定义一个变量不就好了吗,有没有大侠帮助我,给我一些详细、直观的解释,谢谢!
我一直想不通C#中可以自定义变量,可以定义public、private、protected等类型,那为什么要用Get和Set去定义属性呢,自己定义一个变量不就好了吗,有没有大侠帮助我,给我一些详细、直观的解释,谢谢!
public class CG
{
protected string _cource;
protected int _grade;
public CG(string cource, int grade)
{
_cource = cource;
_grade = grade;
}
public CG(int grade)
{
_grade = grade;
}
public int Grade
{
get
{
switch (_grade / 10)
{
case 9: return 1; //90分以上为1等
case 8: return 2; //80分以上,90以下为2等
case 7: return 3; //70分以上,80分以下为3等
case 6: return 4; //60分以上,70分以下为4等
default: return 5; //60分以下为5等
}
}
}
public string Cource
{
get
{
if (_cource == null)
{
return "平均分";
}
else
{
return _cource;
}
}
set
{
if (value == "")
{
_cource = "平均分";
}
else
{
_cource = value;
}
}
}
public object _obj
{
get;
set;
}
}
不知通过以上例子,你是否想通get和set的意义.
(1)变量取值和设置值,只能给它什么就是什么,一点逻辑判断也没有,而我们可以通过get和set在内部做一些处理,过滤掉一些不合理的数据,也减少异常的发生.
(2)有时,我们并不想要原模原样的变量值,可能需要对它加工的数据,如以上Grade方法,我们可以用get,当然,这种加工后的数据,是不允许用户人为改变的(是通过算法算出来的),所以不能开放给他set方法.
总之,有了get和set方法,我们调用起来才能更安全,否则,private和protected就没有意义了,因为在类我外部(包括对象调用)都无法调用到private和protected属性.如果把属性都定义成pubic,就太不安全了.
如果还有疑问,可以Hi我.
{
protected string _cource;
protected int _grade;
public CG(string cource, int grade)
{
_cource = cource;
_grade = grade;
}
public CG(int grade)
{
_grade = grade;
}
public int Grade
{
get
{
switch (_grade / 10)
{
case 9: return 1; //90分以上为1等
case 8: return 2; //80分以上,90以下为2等
case 7: return 3; //70分以上,80分以下为3等
case 6: return 4; //60分以上,70分以下为4等
default: return 5; //60分以下为5等
}
}
}
public string Cource
{
get
{
if (_cource == null)
{
return "平均分";
}
else
{
return _cource;
}
}
set
{
if (value == "")
{
_cource = "平均分";
}
else
{
_cource = value;
}
}
}
public object _obj
{
get;
set;
}
}
不知通过以上例子,你是否想通get和set的意义.
(1)变量取值和设置值,只能给它什么就是什么,一点逻辑判断也没有,而我们可以通过get和set在内部做一些处理,过滤掉一些不合理的数据,也减少异常的发生.
(2)有时,我们并不想要原模原样的变量值,可能需要对它加工的数据,如以上Grade方法,我们可以用get,当然,这种加工后的数据,是不允许用户人为改变的(是通过算法算出来的),所以不能开放给他set方法.
总之,有了get和set方法,我们调用起来才能更安全,否则,private和protected就没有意义了,因为在类我外部(包括对象调用)都无法调用到private和protected属性.如果把属性都定义成pubic,就太不安全了.
如果还有疑问,可以Hi我.