因为我之前都是写VF的,VF中可以在Form中创建任意个属性,我们一般的用途都是用来记录变量,方便在Formset中轮换Form时读取另一张form的变量,但实际上属性并不是这么简单,但也并不复杂,VF中的用法,只是C#中属性的一个典型.
其实属性的最主要作用是:当你想把很多的方法变量都封装在一个类里,而这些方法变量都想通过统一或几个地方来设置,设置后所以的方法都相应变化时,就最好用属性了.
举个例子,我要封装一个类,只要我传入一个人员那么调用PrintRy()和PrintGz()都是当前人员的信息.
- public class TestClass
- {
- private string ry;
- public string RyPro
- {
- get
- {
- return ry;
- }
- set
- {
- ry = value;
- }
- }
- public void PrintRy()
- {
- MessageBox.Show("你的姓名是:" + ry);
- }
- public void PrintGZ()
- {
- MessageBox.Show(ry + "的工资是");
- }
- }
那么我在程序中引用时只需:
- TestClass TC =new TestClass();
- TC.RyPro="Jackon"; //设置属性
- TC.PrintRy(); //显示你的姓名是Jackon
- TC.PrintGZ() //显示Jackon的工资是
以上只是一个简单应用.
下面讲一下get 和 set的作用.
可能是我一直都是写VF多,所以不太容易理解get的作用,网上也很少提示get的作用是什么(可能是我太菜了,其实根本就不用明说,呵呵.)
其实get是指该属性传入值后的最终显示值,可能这样说不太易明,举个例子
拿上列举例如果在引用时最后加一个
MessageBox.Show(TC.RyPro);
会显示值为Jackon
这是因为在定义get时是return ry的值,如果把get中的语句改为return "AAA",也就是如下
- public string RyPro
- {
- get
- {
- return "AAA";
- }
- set
- {
- ry = value;
- }
- }
那么在设置属性值后MessageBox.Show(TC.RyPro)会显示AAA,也就是说你就传把TC.RyPro赋值为Jackon,但赋值后他的属性值仍然是AAA.
而set可以简的理解为装传入值进行处理,而其中的value就是传入的属性值