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

定义方法中的参数,可不可以限定是哪一个类或者子类?
A是父类,B继承A,C继承B

public   void   GetXXX(A   a){
...
...
}

我想把这个参数限定死,只是是A或者是A的子类。
或者我的写法根本就不对,应该用   Type作为参数类型。

请大侠给我指点一下!谢谢!


------解决方案--------------------
也没问题,给你个实际例子:

/// <summary>
/// 得到type类型图元总个数
/// </summary>
/// <param name= "type "> </param>
/// <returns> </returns>
public int GetBlockCount(Type type)
{
int count = 0;
ArrayList arr = new ArrayList();

foreach (Shape shape in ShapeSet)
{
if (shape.GetType() == type)
count++;
}

return count;
}

------解决方案--------------------
nayc(Still water runs deeply)
搞过一些...
------解决方案--------------------
public void GetXXX(T a) where T : A
{
...
...
}