C# 实现两个接口的参数约束

C# 实现两个接口的参数约束,c#,generics,abap,C#,Generics,Abap,我试图了解Abap-OO的一些工作原理 在C#中,可以通过泛型中的约束将类型限制为任何类型,但至少符合某些(多个)接口,具体做法如下: where T : IAmInterfaceA, IAmInterfaceB 是否可以在abap oo中存档相同的内容?我想将任何对象作为参数传递给符合两个接口的方法 例如,我希望有这两个接口: 伊瓦利达 不可否认 我不希望有一个额外的接口,将这两种方法分别提供的方法结合起来 例如,可能有一个管理器类希望保存对象,但前提是这些对象有效: Manager.

我试图了解Abap-OO的一些工作原理

在C#中,可以通过泛型中的约束将类型限制为任何类型,但至少符合某些(多个)接口,具体做法如下:

where T : IAmInterfaceA, IAmInterfaceB
是否可以在abap oo中存档相同的内容?我想将任何对象作为参数传递给符合两个接口的方法


例如,我希望有这两个接口:

  • 伊瓦利达
  • 不可否认
我不希望有一个额外的接口,将这两种方法分别提供的方法结合起来

例如,可能有一个管理器类希望保存对象,但前提是这些对象有效:

Manager.Save(/* <object that conforms to both interfaces IValidate and ISaveable> */ );

如果可能,如何在abap oo中执行此操作?

在abap中,您必须创建一个组合接口或在运行时检查条件(我不建议这样做)。参数只能使用单一类型。据我所知,像您所引用的那些更复杂的约束是不可能的。

此外,如果可能有更复杂的约束,我不确定我是否会提倡它+1.
static bool Save<T>(T dataObject) where T : IValidate, ISaveable { /* ... */ }