Потеря данных при этом не происходит, поэтому зачем нужно явно вводить перечисления в ints?
Не было бы более интуитивным, если бы оно было неявным, скажем, когда у вас есть метод более высокого уровня, например:
PerformOperation ( OperationType.Silent type )
где PerformOperation
вызывает обернутый метод С++, который отображается как таковой:
_unmanaged_perform_operation ( int operation_type )