Если это API, используемый полностью из F #, вы можете избежать создания делегатов и напрямую использовать функции в качестве значений первого класса:
type CallbackType =
| String of (string -> unit)
| Byte of (byte[] -> unit)
Если это будет использоваться с C#, и вы хотите для указания типов делегатов c, альтернативой может быть использование предопределенных делегатов Action
и Func
в типах пространства имен System для обработки этого:
// Assumes
// open System
type CallbackType =
| String of Action<string>
| Byte of Action<byte[]>