2 puntos por clash4970 2025-03-17 | Aún no hay comentarios. | Compartir por WhatsApp

Contexto de desarrollo

Este paquete fue creado para evitar fácilmente que se genere basura por Boxing cada vez que, al desarrollar juegos en Unity o al usar C#, se utiliza HasFlag del Enum base.

Cómo funciona

Usando un Source Generator, durante el tiempo de compilación busca entre el código las declaraciones de enum con [Flag] y genera automáticamente un método de extensión personalizado HasFlagNonAlloc.

Funcionalidades

Permite escribir código HasFlag de forma legible con una sobrecarga en tiempo de ejecución cercana a cero.

var currentState = PlayerState.Idle | PlayerState.Walking;  
  
// HasFlag tradicional (ocurre Boxing)  
if (currentState.HasFlag(PlayerState.Idle))  
{  
    // ...  
}  
  
// Implementación de verificación HasFlag para evitar Boxing  
if ((currentState & PlayerState.Idle) == PlayerState.Idle)  
{  
    // ...  
}  
  
// Después de instalar NonAllocFlagGenerator  
if (currentState.HasFlagNonAlloc(PlayerState.Idle))  
{  
    // ...  
}  

Es mi primer proyecto open source hecho en serio, así que todavía tiene muchas carencias, pero me animé a compartirlo.
Espero que sea útil cuando escriban código sensible al rendimiento.

¡Todo feedback es bienvenido!

Aún no hay comentarios.

Aún no hay comentarios.