c#变量和字段的区别和联系,什么时候用字段

 我来答
不良C黑木马
2016-11-24
知道答主
回答量:17
采纳率:100%
帮助的人:6.7万
展开全部
属性的作用就是保护字段、对字段的赋值和取值进行限定
所以属性一般不是单独存在的,而是和字段在一起,而且通常字段就像女人,private,在家里做家务,属性就像男人,public,在外面打交道,一般字段字母全小写,属性把字段首字母大写,属性的本质就是两个方法,一个叫get()一个叫set()。字段加上这两个方法就是属性。
既有get()也有set()我们诚之为可读可写属性;
只有get()没有set()我们称之为只读属性;
没有get()只有set()我们称之为只写属性;
属性默认有一个value值的参数
一个实例:
class Person
{
private int age; //声明一个私有字段,通常都像这样写成private级别
public int Age //然后通过声明一个属性,控制和获取私有字段age
{
get { return age; }
set { if (value > 0) age = value; } //Age自己有一个value值
}
public void SayHello() //定义一个公有方法,可以访问自己的age
{
Console.WriteLine("我{0}岁", age);
}
}
main方法中:
Person p = new Person();
p.Age = 20; //这里已经出了Person类,不能直接访问private的东西,只能访问Age了
//p.Age = -1; 这里可以测试和体现属性的封装效果
p.SayHello();
Console.ReadKey();
本质:
get方法是:
public int get_Age()
{
return age;
}
set方法是:
public void Age(string value) //给Age赋值时有一个隐式value参数
{
if (value > 0) age = value;
}
上面代码中的Age属性就是控制age字段的。
对于public int Age的解释,public是必须的不再重复,int应该和你控制的字段一样的类型,因为这是属性get方法的返回值类型,你return的是age,也就是控制的是age,自然和他一个类型,Age只是我们为了方便阅读起的名字,并不是起这个名字就肯定是控制age,我们也可以叫其他任何看上去和age没有关系的名字,但这么做不是不方便自己回头看代码嘛,控制哪个字段,关键还是看get中return的是谁,set中设置的是谁 。
对象应该通过操作属性,来对字段设值和取值,属性只是一个中间过度,自己并没有值的变化,本质上从头到尾都改字段和读字段,而属性在本类中有这个权限和功能,和方法类似,作为一个对外的接口,或者是和外界交互的桥梁。

这是平时自己学习写的总结,楼主也可以自己写些小例子测试和验证一下,增加印象,如有错误和不到位的地方欢迎指出,大家共同学习。
陈成10080829
2016-11-24
知道答主
回答量:7
采纳率:0%
帮助的人:7145
展开全部
自己可以看看关于C#方面的书
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式