有没有办法防止一个类的实例被拷贝?
比如:
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;
}
}
----------------------------
基本步骤如上。