码迷,mamicode.com
首页 > Windows程序 > 详细

C# 属性(通俗理解)

时间:2015-05-14 18:02:24      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:

要是让你实现一只狗,输出它吃骨头,这个程序很简单。

新建一个Dog类:

 1     public class Dog
 2     {
 3         public string name;
 4 
 5         public void Show()
 6         {
 7             Console.WriteLine("小狗喜欢吃:"+name);
 8         }
 9 
10     }

前台调用:

 1 namespace ConsoleApplication7
 2 {
 3     class Program
 4     {
 5         static void Main(string[] args)
 6         {
 7             Dog dog = new Dog();
 8             dog.name = "骨头";
 9             dog.Show();
10             //输出结果// 小狗喜欢吃:骨头
11 
12             Console.ReadKey();
13 
14         }
15     }
16 }

这时又要你实现一只猫,输出它吃鱼,没问题。只要新建一个Cat类就好,跟Dog类一样的道理。

 1 public class Cat
 2 {
 3     private string name;
 4 
 5     public void Show()
 6     {
 7         Console.WriteLine("小猫喜欢吃:"+name);
 8     }
 9 
10 
11 }

前台只要调用就行:

 1 namespace ConsoleApplication7
 2 {
 3     class Program
 4     {
 5         static void Main(string[] args)
 6         {
 7             Dog dog = new Dog();
 8             dog.name = "骨头";
 9             dog.Show();
10             //输出结果// 小狗喜欢吃:骨头
11 
12 
13             Cat cat = new Cat();
14             cat.Name = "";
15             cat.Show();
16             //输出结果// 小猫喜欢吃:鱼
17 
18             Console.ReadKey();
19 
20         }
21     }
22 }

目前为止没有任何问题,但是现在要你加上:小狗吃新鲜的骨头,小猫吃新鲜的鱼,你会怎么做?

在方法里面修改成下面形式?

Console.writeLine(“小狗喜欢吃新鲜的:”+name)

Console.writeLine(“小猫喜欢吃新鲜的:”+name)

但是方法是动作,所以不应该写在这里,

你可能会说在前台拼接"新鲜的"不就好了?

Dog dog = new Dog();
dog.name = "新鲜的" + "骨头";
dog.Show();

Cat cat = new Cat();
cat.Name = "新鲜的" + "鱼";
cat.Show();

没错,这样确实可以。接下来就是问题来了,假如A页面也需要这个实现,B页面也需要这个实现,C页面也需要这个实现。。。。。并且这些所有页面用到的都要

改成:小狗吃美味的骨头,小猫吃美味的鱼。你一定抓狂,那么多页面,都要去修改。

在这个情况使用 属性封装字段

Dog类变成:

 1 namespace ConsoleApplication7
 2 {
 3     public class Dog
 4     {
 5         private string name;
 6 
 7         public string Name
 8         {
 9             get { return name; }
10             set { name = "新鲜的"+value; }
11         }
12 
13         public void Show()
14         {
15             Console.WriteLine("小狗喜欢吃:"+name);
16         }
17 
18 
19     }
20 }

当使用了属性,可以看到,不管是新鲜的,美味的,可口的,好吃的,。。。。只要改变这个类的字段的地方就行,前台不用管,也不用管多少个页面会用到,因为都会使

用这个类。

 

C# 属性(通俗理解)

标签:

原文地址:http://www.cnblogs.com/hamburger/p/4503730.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!