将对象创建为类的静态

时间:2013-03-13 03:02:50

标签: c#-4.0

我在c#.net中创建了一个名为“Exam”的类库中的类。在我的窗体中,我创建了一个像“

”的对象
static Exam obj= new Exam();
  1. 会发生什么?
  2. 我可以使用new运算符重新初始化此对象吗?
  3. 如果我重新初始化此对象,是否将分配新内存或将使用相同的内存?
  4. 如何销毁此对象,因为它是静态的,在应用程序关闭之前对象才可用?

1 个答案:

答案 0 :(得分:0)

当我们应该只允许为一个类(单例)创建一个实例时,我们将实际使用它。

 public class Exam
    {
        private static Exam exam = null;

        public string Id { get; set; }


        public static Exam getInstance()
        {

            if (exam == null)
            {
                exam = new Exam();
                exam.Id = IdGenerator.GenerateId();
            }

            return exam;
        }
    }

// CALLER

Exam exam = Exam.getInstance();

                Console.WriteLine(exam.Id);

                Exam exam2 = Exam.getInstance();

                Console.WriteLine(exam2.Id);

//虽然你创建了两个实例,但是两者的ID都差不多......它们看起来很相似。

//此实例将在应用程序退出之前可用。

希望这能回答你的问题