¿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?

Respuestas a la pregunta(4)

Su respuesta a la pregunta