|
|
1
9
通常情况下
编辑1 (为简洁起见删除) 编辑2 好吧,你当然可以使用显式的接口实现:
|
|
|
2
3
您还可以使用泛型:
如果只是一个需要更改的返回值,我更喜欢这个方法,而不是显式的接口思想。但是,我认为如果您有几个属性,每个属性都将返回不同的类型,那么您就不希望有icontrol。至少,我不会。在这种情况下,我建议使用显式接口。 当然,如果您不能访问icontrol的源代码,这就不起作用。 编辑:输入错误。固定的 |
|
|
3
1
不,编译器不允许同一名称字段属于不同的数据类型,而不允许在派生类的接口中定义。 属性(因为接口中不允许任何字段)应该在派生类中实现,并且它们需要具有相同的数据类型。因此,如果没有显式声明,您可能无法对属性执行此操作。 但是,如果将值设置为由函数返回,则它可以工作,但需要检查返回类型,因为返回类型应与函数匹配,否则将出现错误,即接口的函数未实现。
[更新]
这两个属性如果包含不同的定义,则在最终使用接口和类时将无法解释。
请参见以下示例:
您可以看到,当通过icontrol添加数据时,repeater中的列表容器将具有不同的值(因为icontainer.value的显式定义)。 |
|
EarthTurtle · 调整泛型抛出迭代器的异常类型 2 年前 |
|
wallop · 实现必须明确提及所有接口字段,还是可以跳过它们? 2 年前 |
|
|
Reelie · C#11-通过抽象类在接口中静态抽象成员? 2 年前 |
|
Addem · 在OCaml签名中放入类型声明的正确方法是什么 2 年前 |