日期:2014-05-20  浏览次数:20657 次

有没有办法防止一个类的实例被拷贝?
比如:
public   class   TestClass
{
        internal   TestClass()
        {
        }
}
这样写这个类的话,应该是只有改类的Assembly中可以创建该类的实例,在该Assembly不能创建,但是却可以访问。是这样的吧?
另外,我还想防止该类的实例被拷贝。
比如:
TestClass   t1   =   new   TestClass();
TestClass   t2   =   t1;   //   我的目的是这样的操作不能成功,也就是不能拷贝。

请问能实现吗?如何做到?谢谢!

------解决方案--------------------
=========================================
TestClass t1 = new TestClass();
TestClass t2 = t1; // 我的目的是这样的操作不能成功,也就是不能拷贝。
=========================================

这样是不可能做到的,但你可以考虑用单例模式。这样一个类的实例在程序集中只存在一个。
------解决方案--------------------
不能拷贝,你这样不是拷贝.
拷贝分成浅拷贝,例如有些对象的Copy()方法
还有深度拷贝,MemberWise()好像.我这里没有IDE和Msdn,可能拼写有误.
你自己查阅一下资料应该知道什么叫拷贝了
----------------------------------------------
你的代码是不可能实现的,因为只是传递引用类型的引用而已
单利模式可以只创建一个类的实例,但不能保证不能被多个引用
------解决方案--------------------
到网上查查吧,很多。
------解决方案--------------------
静态类
------解决方案--------------------
pbulic class exp
{
private static exp nowexp;

public static exp getexp()
{
if (nowexp==null)
nowexp=new exp();
returun nowexp;
}
}

----------------------------
基本步骤如上。