属性和实例变量的问题
例如:程序代码:
public class GradeBook { //有无声明实例变量都可以正常调用属性的get访问方法 private string courseName; public string CourseName { get; set; } public override string ToString() { return CourseName; } } namespace ProgramTest { class Program { static void Main(string[] args) { Test test = new Test(); //调用对象test属性的set访问方法 test.Str = "Programming"; //间接调用对象test属性的get访问方法 Console.WriteLine(test); } } }
在类里声明一个属性体,而有没有相应的实例变量都可以正常调用属性的set和get访问方法,这样是不是说明CourseName仅仅表示用于操作属性的一个变量,实际上和实例变量courseName之间没有任何数据的交换?
这样是不是就说明实例变量可有可无,只是属性则是必要的?
可不可以这样认为:实例变量只是用来直观地列出所在类所具有的的属性,让阅读代码的人知道这个类有哪些属性,但并不具有实际意义的值(例如,即使在Main里设置CourseName为“Programming”,但实例变量courseName的值并不是“Programming”,而是引用类型的默认值NULL),真正的属性操作是通过属性体方法的访问来完成的?
初学C#,问题不少,主要是不明白实例变量和属性体之间有没有联系,如果有又是怎么联系的,大家帮帮忙,谢谢啦!
[ 本帖最后由 黄昏黄昏 于 2013-9-20 23:49 编辑 ]