我说一个不知道可行不 ?
foreach(object x in Exception)
{
ResponseWrite(ExceptionName);
}
如果已知子类的类型 就不用object 用那个类型
with A as(select id,CAST(名字 as varchar(200)) 名字, 父亲名字 from 表名 where 父亲名字=0
union all
select Bid,cast(A名字+'\'+B名字 as varchar(200)),B父亲名字
from A join 表名 B on Aid=B父亲名字)
select
from A
order by 2
将上述语句中的两个“表名”改为你自己的表名即可
子类B只要实现了抽象类A,就一定要实现抽象类A中的抽象方法。 如果子类B不实现抽象类A中的 抽象 方法,那么除非将子类B也声明为一个抽象类。 但是如果子类B还有子类C,并且这个子类C不是抽象类,就要实现父类B和父类的父类C所有抽象方。
例如,
Sql Server 2000因为你这里说了只有三级分类,所以我就不写Sql函数了,得到华北下面所有子类别的ClassID(不包括华北的ClassID)select ClassID from Newclass where classParentID in (select ClassID from Newclass where classParentID=51)
根据类别ClassID表查询新闻select from News where ClassID in (select ClassID from Newclass where classParentID in (select ClassID from Newclass where classParentID=51))
同学你好,你可以反射+轮寻一遍。
private Type[] GetChildTypes(Type parentType){
List<Type> lstType = new List<Type>();
Assembly assem = AssemblyGetAssembly(parentType);
foreach (Type tChild in assemGetTypes())
{
if (tChildBaseType == parentType)
{
lstTypeAdd(tChild);
}
}
return lstTypeToArray();
}
调用写法:
Type[] tChildTypes = GetChildTypes(typeof(Class1));备注:
Class1是父类 Class2,Class3是Class1的子类。
返回结果:
Type[0]=Class2
Type[1]=Class3
这是否符合你的要求?
OntModel ontModel = ModelFactorycreateOntologyModel(OntModelSpecOWL_MEM);
ontModelread("owl路径");
String testStr = "待处理字符串";
for (Iterator i = ontModellistClasses(); ihasNext();) {
OntClass c = (OntClass) inext();
if (!cisAnon()) {//判断不是匿名类
// 取得它的等价类
if (cgetLocalName()equals(testStr)) {
Systemoutprint(" 等价类:"+cgetEquivalentClass());
}else{
continue;//未匹配直接跳下一个
}
// 迭代显示当前类的直接父类
for (Iterator it = clistSuperClasses(); ithasNext();){
OntClass sp = (OntClass) itnext();
Systemoutprintln(cgetModel()getGraph()getPrefixMapping()shortForm(cgetURI()) + "'的父类是" + spgetModel()getGraph()getPrefixMapping()shortForm(spgetURI()));
}
// 迭代显示当前类的直接子类
for (Iterator it = clistSubClasses(); ithasNext();){
OntClass sb = (OntClass) itnext();
Systemoutprintln(cgetModel()getGraph()getPrefixMapping()shortForm(cgetURI()) + "的子类是" + sbgetModel()getGraph()getPrefixMapping()shortForm(sbgetURI()));
}
}
}
object obj = (bGetType())GetProperty("a)GetValue(b, null);
if(obj != null && obj is A)
{
A aObj = obj as A;
int result = intParse((aObjGetType())
GetProperty("memberId")GetValue(aObjnull)ToString());
}
(bGetType())GetProperty("memberId")GetValue(b, null)//这个获取memberId的值就为null了。。。
因为对象b没有名字为memberId的属性
(bGetType())GetProperty("amemberId")GetValue(b, null)//这样也为null了。。。
原因同上没有名字为amemberId的属性
继承后子类包含了父类的方法,直接调用就行了,不包括私有成员。
即getChild()不是私有成员,所以直接getChild()就可以
java中父类如何得到子类的对象:
Parent
test3=new
Child();
以上就是关于C#如何获得一个Class的子类全部的内容,包括:C#如何获得一个Class的子类、树形数据库怎么获取子类、如何查找一个抽象类的所有子类等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)