[求助]如何实现类的不同构造函数拥有不同的方法.
我的问题是:
比如:
public class a
{
private int _Id;
//构造函数
public a()
{
}
public a(int paramInt)
{
this._Id=paramInt
}
public int UpDate()
{
//其他代码
/*我的目的:我想在使用这个类的时候,a=new a();这个时候只能使用Update()这个方法,而下面这个Delete()方法不能使用.(最好是在a点的时候智能提示不显示Delete()这个方法.*/
}
public int Delete()
{
//其他代码
/*我的目的:我想在使用这个类的时候,a=new a(1);这个时候只能使用Delete()
这个方法,而上面那个UpDate()方法不能使用.(最好是在a点的时候智能提示不显示UpDate()这个方法.*/
}
}
简单的说:
就是:
如果使用a=new a()实例化的时候,只能使用UpDate()方法(最好是在a点的时候智能提示不显示Delete()这个方法).
如果使用a=new a(1)实例化的时候,只能使用Delete()方法(最好是在a点的时候智能提示不显示UpDate()这个方法).
不知道可以实现不呢?
请各位大哥大姐帮帮忙,3Q!
------解决方案--------------------构造函数重载
通过设置不同参数对构造函数重载
比如public a()
{}
也可以
public a(string str1)
{}
还可以public a(string str1, int i)
{}
etc..
------解决方案---------------------_-#
------解决方案--------------------先想想,貌似不行的
------解决方案--------------------先帮你顶一下,最好给我点分!呵呵!
------解决方案--------------------曲线救国
public class A
{
private int _Id;
private A _A = null;
public A()
{
_A = new A1();
}
public A(int paramInt)
{
this._Id = paramInt;
_A = new A2(paramInt);
}
public int UpDate()
{
if (_A is A2)
{
throw new Exception( "Update方法不能用 ");
}
}
public int Delete()
{
if (_A is A1)
{
throw new Exception( "Delete方法不能用 ");
}
}
}
public class A1 : A
{
}
public class A2 : A
{
}
------解决方案--------------------我觉得不行
------解决方案--------------------建议你写两个类,如果是自己使用的话应该明白其中的意思,所以不用你说的条件
------解决方案--------------------为什么不派生出两个类;
一个构造函数继承A(),实现Update()方法;
另一个构造函数继承A(int a),实现Delete()方法;
------解决方案--------------------建不同的类,属于不同的类中 ^-^
^-^
^-^
------解决方案--------------------有点工厂和单件的味道。
------解决方案--------------------你可以用接口来完成,注意要避开从constructor来控制,大致的思路如下:
public interface IUpdate
{
int Update();
}
public interface IDelete
{
int Delete();
}
public class a:IUpdate, IDelete
{
private a(){}
private a( int paramInt ){
...