|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
J2EE比较成熟一点,一些比较出名的企业应用软件都是基于J2EE的。以后的发展就不好说了。不过net网页编程比较烦,学.net的话,微软把很多工具都封装好了,学起来可能容易一点。假如有各类植物,好比Dogs/Cats/Cows/...,都有分歧的Age办法,若想从其基类用不异的办法ShowAge来显现这些分歧的Age,天然就能够借用基类Animal的virtual函数,好比:
- publicclassAnimal
- {
- publicvirtualAge
- {
- get{....}
- set{....}
- }
- publicShowAge()
- {
- Show(Age);
- }
- }
- publicclassDog:Animal
- {
- publicoverrideAge
- {
- get{...}
- set{...}
- }
- }
- publicclassCat:Animal
- {
- publicoverrideAge
- {
- get{...}
- set{...}
- }
publicclassAnimal{publicvirtualAge{get{....}set{....}}publicShowAge(){Show(Age);}}publicclassDog:Animal{publicoverrideAge{get{...}set{...}}}publicclassCat:Animal{publicoverrideAge{get{...}set{...}}
override是个关头,由于假如没有override,则animal会挪用本人的Age。假如Dog和Cat是一个LINQ/EF主动天生的类,则没有override这个关头词,这类情形就会产生。
固然不克不及每次到LINQ/EF天生的代码里边手工加上,怎样办呢?
前次碰到这个成绩,搜刮而不得,测试了半天找到一个办法,明天再次用上,看来不算少见发帖共享。
在Animal里边,利用这些代码:
- publicvirtualintAge
- {
- get
- {
- PropertyInfopi=this.GetType().GetProperty("Age");
- intage=(int)pi.GetValue(this,newobject[]{});
- returnage;
- }
- set
- {
- PropertyInfopi=this.GetType().GetProperty("Age");
- pi.SetValue(this,value,newobject[]{});
- }
- }
publicvirtualintAge{get{PropertyInfopi=this.GetType().GetProperty("Age");intage=(int)pi.GetValue(this,newobject[]{});returnage;}set{PropertyInfopi=this.GetType().GetProperty("Age");pi.SetValue(this,value,newobject[]{});}}
这类办法实在和“承继”没甚么年夜干系,地道是间接读取了数据库表中的属性,能够应急。
如果英语好,口才好,加上女孩子的优势说不定有机会进去做做别的工具) |
|