本帖最后由 夏闯富 于 2013-10-8 09:57 编辑
补全应该是这样的
public static struct Node{
public Node(){};//无参的构造函数,这句代码是自动隐藏的
public Node(int Age,string Name){this.age=Age;this.name=Name};//如果加上个有参数的构造函数
int age;
string name;
}
Node aaa;//在栈中开辟Node 型的单元空间,没有对字段进行初始化,相当于aaa=NUll
aaa=new Node()//实例化Node(就是给aaa赋值 等效于aaa!=NULL),调用的是无参的构造函数实例化对象
两步合为一步Node aaa=new Node();
按正常的逻辑 输出console.WriteLine("姓名:"+aaa.name+" "+"年龄:"+aaa.age)的结果应该是 姓名:(不显示任何内容,显示为空) 年龄:(不显示任何内容,显示为空) 。但实际上,struct是不能这么(调用无参的构造函数)实例化对象的,因为struct是值类型而不是引用类型!程序会报错!
Node bbb;
bbb=new Node(34,"周杰伦");//调用有参数的构造函数实例化对象
两步合为一步:Node aaa=new Node(34,"周杰伦");
输出console.WriteLine("姓名:"+bbb.name+" "+"年龄:"+bbb.age)的结果是 姓名:周杰伦 年龄:34 |