1
4
我不认为一定有一种语法上很酷的方法来实现这一点。一个可能的解决方案是定义一个可转换接口:
那么你的班级可能是:
我想这能让你接近你想去的地方…所有的foo和bar都在你的问题中,有时很难确定你的意图到底是什么。希望这有帮助。 编辑: 添加了位置约束…您可能必须能够在可转换类中创建新实例。
编辑2:
使foo继承自
|
2
4
听起来你找到了解决更大问题的办法。要回答您的特定问题:不,C和CLR都不支持“向后”泛型类型参数约束。也就是说,
“t必须是foo或foo转换为的类型”不受支持。 有些语言有这种限制;iirc scala就是这样一种语言。我怀疑这个特性对于某些反变体接口的使用是很方便的。 |
3
1
可以通过用作类型约束的接口绕行。
例如,
|
4
1
与其经历定义接口和修改类以实现该接口的麻烦,为什么不这样做呢?
然后在处理类型为
顺便说一下(自从
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
i_sniff_ket · 在unity之外使用unity类 2 年前 |