问一个关于C#的基础题目

1是不是只要private修饰的变量都叫字段呢?
2什么时候用字段?什么时候用属性?什么时候字段和属性一起用?
3什么时候用自动属性?

1,只有在类中第一级私有变量才能叫字段
2,当字段中的数据不需要外界访问的时候,用字段。外界要访问的时候,需要给字段封装属性(属性不能存储数据,只能字段才能)
3,当前类对象不需要序列化的时候,可以用自动属性(网络传输什么的都要序列化)追问

class Program{
private int a;
public int A{get; set;}
static void Main(string[] args){
}
private int b;
}
请问b算字段吗?

追答

不算,局部变量

不算

追问

怎么会是局部变量呢?局部变量不是在方法里的变量么?

追答

额,main()不就是个方法

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-02-12
// 这些是字段
private int a;
public int b;
// 这些是属性
private int c { get;set;}
// 属性可以在获取和设置值得时候做处理
public int d
{
get { return this.a; }
set
{
// 只保存大于0的值到a字段
if (value > 0) { this.a = value; }
}
}
差不多就这样,属性可以理解成访问字段的两个方法 get_x(); set_x();
比如属性c可以
等价于
private int c;
public int get_c() { return this.c; }
public void set_c() { this.c = value; }
属性还可以是只读的
public int f { get;private set;}
public int g { get { return this.a; } }本回答被网友采纳
第2个回答  2014-02-12
放在类中的变量叫字段,不在类中的叫变量。
属性本质是方法,只不过使用时候跟变量差不多。
正常情况下字段是用不到,你不写字段,系统也会随机生成一个对应的字段,但序列化时候必须自己写字段。所以可以无脑自动属性。