鉴于以下两类
public class LocalFoo {
}
public class RemoteFoo {
}
这两个类应该具有相似的属性:
public string strBar{ get; set; }
public int intBar{ get; set; }
区别在于程序如何设置和读取这些属性(在前一种情况下是在本地处理属性)。在后者中,直接从数据库读取和写入属性,从数据库读取两个数据表。
我知道继承将必须在这里发生,但这就是我要坚持的地方。
例如,如果我声明一个方法TakesFoo
:
public void takesFoo( Foo bar ){
/*Magic Happens Here*/
}
我希望能够使用类型为LocalFoo
或的对象调用该方法RemoteFoo
。
我知道我可以写一个抽象类Foo:
public abstract class Foo{
}
并且有LocalFoo和RemoteFoo都继承自它,但是有一个警告-我还有一个抽象类,我需要RemoteFoo来继承该类,使用它可以更容易地从DataTables中读取/写入数据-
public abstract class DRHelper : IEquatable<DRHelper>, IDisposable {
}
我最初的目的是使Foo成为界面,但我不知道它是否会起作用,我希望有人可以给我一些指导,说明如何处理此问题。
创建一个具有以下内容的IFoo接口:
string strBar{ get; set; }
int intBar{ get; set; }
LocalFoo类和RemoteFoo类都需要实现IFoo接口。
然后将您的方法更改为:
public void takesFoo( IFoo bar ){
/*Magic Happens Here*/
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句