您的位置:首页 > 移动开发 > 微信开发

涉及属性,继承,构造函数的小程序

2011-07-26 11:42 211 查看
using System;

namespace 继承实验
{
class Program
{
class dog
{
private int Age;
private string Name;
public static string HomeTown;
static dog()
{
HomeTown = "东北松花江上!"; //类构造器
}
public int GetAge
{
get { return Age; }
set { value = Age; }
}
public string GetName
{
get { return Name; }
set { value = Name; }
}
public dog(int Age)
{
this.Age = Age;         //实例构造器
}
public dog(string Name,int Age)
: this(Age)
{
this.Name = Name;
}
}
static void Main(string[] args)
{
dog d1 = new dog(5);
Console.WriteLine("我的名字是{0},今年{1}岁了,我的家乡在{2}", d1.GetName, d1.GetAge,dog.HomeTown);//如果实例构造器,没有
//初始化数据,值类型默认为0,引用类型默认为null
dog d2 = new dog("芭比", 5);
Console.WriteLine("我的名字是{0},今年{1}岁了,我的家乡在{2}", d2.GetName, d2.GetAge,dog.HomeTown);
Console.ReadLine();
}
}
}

/*
实例对象初始化过程:
为实例分配内存;
初始化附加成员,包括方法表指针和SyncBlockIndex变量(我们已经在 跟小静读CLR via C#(03)中已经提到过)。
调用实例构造器进行初始化。
*/
/*
类构造器适用于引用类型(包括接口)和值类型,用来设置类的初始状态。类中并没有默认产生的类构造器,需要我们显式构造
类构造器只能有一个,不能进行重载。而且不能含参数。类构造器的目的是初始化类的静态成员,它只能访问静态成员,不能访问实例成员。
类构造器的访问限制是私有的,但是我们不能在类构造器前添加访问修饰符,private也不行,否则会产生编译错误,
这样做是为了防止开发人员调用该方法。它的调用是由CLR负责的,我们应该避免编写需要以特定顺序调用类构造器的代码。
类构造器不要调用其基类的类构造器。因为基类的静态成员并没有被派生类所继承,它只是编译时静态绑定。
类构造器的调用顺序和实例构造器相似的,首先静态字段被初始化,然后在构造其中被重新赋值。*/

[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐