C#如何获得一个Class的子类

C#如何获得一个Class的子类,第1张

我说一个不知道可行不 ?

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的子类、树形数据库怎么获取子类、如何查找一个抽象类的所有子类等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9269851.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存