具有动态类型的 C# 接口/抽象类
我正在编写一系列基于数学的类,每个类都继承自一个抽象类。我希望我的抽象类有一个名为“参数”的 getter 和 setter。
public abstract dynamic Parameters {get; set;}
然后在每个单独的数学课中,我想实现具有某种类型的参数:
如果该类需要一个句点,我会这样做:
public override IPeriod Parameters {get; set;}
这不会编译。显然我可以将返回类型更改为动态并且它会起作用,但随后我会失去智能感知。有没有一种标准方法可以在不丢失智能感知的情况下做到这一点?
每个类都会有一个参数 {get; set;} 但它们会是不同的类型。从抽象类中删除参数是否更好?
I'm writing a series of math based class that each inherit from an abstract class. I want my abstract class to have a getter and setter called Parameters.
public abstract dynamic Parameters {get; set;}
Then in each individual math class I want to implement Parameters with a certain type:
If the class requires a period I would do it like this:
public override IPeriod Parameters {get; set;}
This doesn't compile. Obviously I could change the return type to dynamic
and it would work, but then I lose intellisense. Is there a standard way of doing this without losing intellisense?
Every one of the class will have a Parameters {get; set;} but they will be up a different type. Is it better just to eliminate Parameters from the abstract class?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
是的,使用泛型..
然后您可以继承指定将用于参数的类型,例如..
Yes, use generics..
then you can inherit specifying the type that will be used for the param like..
如果将参数设置为泛型,则可以返回所需的任何类型:
If you make parameters a generic, you can return whatever type you want: