当前位置:编程学习 > C#/ASP.NET >>

C#构造函数和析构函数

    //下面objects用来记录学生对象的个数,请修改程序使objects记录的是当前内存中学生对象的个数。
    public class Student
    {

        public static int objects = 0, classes = 0;
        public string name;
        //构造函数
        public Student(string n)
        {
            name = n;
            Console.WriteLine("对象计数:{0}", ++objects);
        }
        //静态构造函数
        static Student()
        {
            Console.WriteLine("类计数:{0}", ++classes);
        }
        //析构函数
        ~Student()
        {
            
            Console.WriteLine("学生对象{0}销毁", name);
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Student s1 = new Student("aaa");
            Student s2 = new Student("bbb");
            s1 = new Student("ccc");  
    } C# 内存 构造函数 析构函数 对象 --------------------编程问答--------------------  Student.objects += 1就是了,在需要计数的地方加上 --------------------编程问答--------------------
引用 1 楼 bdmh 的回复:
 Student.objects += 1就是了,在需要计数的地方加上

请问可以说详细一点吗?为什么要加1呢? --------------------编程问答-------------------- 我还在想,貌似搞不定的!

Student s1 = new Student("aaa");
Student s2 = new Student("bbb");
s1 = new Student("ccc");  

根据你上面给出的代码,此时,合理的 Object 数量应该是 2,但是实际是3,但是析构函数的调用又是不定期的,而且我试过,强制创建对象的时候,执行垃圾回收也没用。所以我觉得这题应该是无解。 --------------------编程问答-------------------- 除
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,