¿C # tiene un equivalente a la tipificación estructural de Scala?
En Scala, puedo definirtipos estructurales como sigue:
type Pressable = { def press(): Unit }
Esto significa que puedo definir una función o método que tome como argumento algo Pressable, como este:
def foo(i: Pressable) { // etc.
El objeto que paso a esta función debe haber definido para él un método llamado press () que coincida con la firma de tipo definida en el tipo: no toma argumentos, devuelve Unit (la versión de Scala de void).
Incluso puedo usar el tipo estructural en línea:
def foo(i: { def press(): Unit }) { // etc.
Básicamente, le permite al programador tener todos los beneficios de escribir a la vez que tiene el beneficio de la verificación de tipos en tiempo de compilación.
¿C # tiene algo similar? Busqué en Google pero no puedo encontrar nada, pero no estoy familiarizado con C # en profundidad. Si no lo hay, ¿hay algún plan para agregar esto?