类属性的定义与定义字段有些相似之处.但结构代码要多出不少.属性一般与一个私有字段相关联,以控制对这个字段的访问,此时get块可以直接返回该字段的值.
看代码示例:

  1. class MyBase
  2.     {
  3.         private int age;
  4.         public int Age
  5.         {
  6.             get
  7.             {
  8.                 return age;
  9.             }
  10.             set
  11.             {
  12.                 age = value;
  13.             }
  14.         }
  15.     }
  16.     class Program
  17.     {
  18.         static void Main(string[] args)
  19.         {
  20.             MyBase MyObj = new MyBase();
  21.             MyObj.Age = 20;
  22.             Console.WriteLine(MyObj.Age);
  23.             Console.ReadKey();
  24.         }
  25.     }


其实属性给我的感觉像是一个门号.通过这个门号来读写相关联的字段.读写哪个字段也可以在get, set块中进行判断但这种思想不好.会导致一个属性与多个字段相关联.下面再写个示例描述写入属性配对的字段值时值不合法时怎么处理.
一般四种情况:
1:什么都不做
2:给字段赋默认值
3:继续执行,就像没有发错误一样但记录下该事件以备将来分析
4:抛出一个异常(推荐采用这种方法)
下面示例就以第4种情况做处理.

  1. class MyBase
  2.     {
  3.         private int age = 1;
  4.         public int Age
  5.         {
  6.             get
  7.             {
  8.                 return age;
  9.             }
  10.             set
  11.             {
  12.                 if (value > 10)
  13.                 {
  14.                     throw new Exception("err");
  15.                 }
  16.                 else
  17.                 {
  18.                     Age = value;
  19.                 }
  20.             }
  21.         }
  22.     }
  23.     class Program
  24.     {
  25.         static void Main(string[] args)
  26.         {
  27.             MyBase MyObj = new MyBase();
  28.             try
  29.             {
  30.                 MyObj.Age = 20;
  31.             }
  32.             catch (Exception e)
  33.             {
  34.                 Console.WriteLine(e.Message);
  35.             }
  36.             Console.WriteLine(MyObj.Age);
  37.             Console.ReadKey();
  38.         }
  39.     }

上面代码在set块中进行了判断.不合法时进行抛出异常处理.这时用到了throw, try, catch.
关于throw, try, catch详见 #编程:异常抛出处理.throw(),try,catch语句

, , , , ,

Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网

1 Comment so far...

  1. C#编程:异常抛出处理.throw(),try,catch语句-歌特中国歌特金属,配置iis+php+mysql,关注学习(Sql,Net,Web2.0,Javacript,Seo,Cms)

    [...] C#编程:定义类成员-定义属性 [...]

Leave a reply?

Logged in as cngothic. Logout »