c# - 抽象方法是否可以有任意数量的类型参数?
问题描述
我有一个抽象类,我想让派生类不仅定义值类型,还让它们定义它们有多少个值类型。然后我想要求他们为每种类型都有 getter/setter:
public abstract class A<T1, T2, ..., TN>
{
// Getters
public abstract T1 GetValue();
public abstract T2 GetValue();
...
public abstract TN GetValue();
// Setters
public abstract void SetValue(T1 newVal);
public abstract void SetValue(T2 newVal);
...
public abstract void SetValue(TN newVal);
}
然后,从 A 派生的类可以拥有任意数量的值,只要它们提供对它们的访问。这在c#中可能吗?或者类似的东西?
解决方案
不,它们必须明确定义,因为编译器必须弄清楚如何处理要构建到程序集中的类型。
您可以通过代码生成器获得类似的效果。
推荐阅读
- ios - iOS 的 Firebase 云消息传递本地化参数?
- python - 如何在 PyQTgraph 中显示帧率?
- django - 如何在通用视图中重定向
- kubernetes - 具有大量 statefulsets 和服务的 Kubernetes 集群的架构建议
- html - Bootstrap 一次折叠所有 Read More
- r - 如何在make R时设置参数来解决如下一些编译错误?
- django - 是否有人将 django celery worker 实现为 docker 容器,它仅在分配任务时运行
- javascript - 不一致的 cookie 设置行为
- node.js - 找不到错误模块:无法在 ubuntu 18.04 中解析“react-plaid-link”
- sql - SQL Server bcp:如何使用转义双引号检索 xml 字段