2 poin oleh clash4970 2025-03-17 | Belum ada komentar. | Bagikan ke WhatsApp

Latar belakang pengembangan

Ini adalah paket yang dibuat agar saat mengembangkan game Unity atau menggunakan C#, pembuatan garbage akibat boxing ketika memakai Enum.HasFlag bawaan bisa dicegah dengan mudah!

Cara kerja

Dengan menggunakan Source Generator, pada waktu kompilasi paket ini mencari deklarasi enum yang memiliki [Flags] di dalam kode, lalu secara otomatis menghasilkan extension method HasFlagNonAlloc kustom.

Fitur

Anda bisa menulis kode HasFlag yang tetap mudah dibaca dengan overhead runtime yang nyaris nol!

var currentState = PlayerState.Idle | PlayerState.Walking;  
  
// HasFlag lama (terjadi boxing)  
if (currentState.HasFlag(PlayerState.Idle))  
{  
    // ...  
}  
  
// Implementasi pengecekan HasFlag yang menghindari boxing  
if ((currentState & PlayerState.Idle) == PlayerState.Idle)  
{  
    // ...  
}  
  
// Setelah memasang NonAllocFlagGenerator  
if (currentState.HasFlagNonAlloc(PlayerState.Idle))  
{  
    // ...  
}  

Ini adalah proyek open source pertama saya yang dibuat dengan cukup serius, jadi masih banyak kekurangannya, tetapi saya memberanikan diri untuk membagikannya!
Semoga ini bisa membantu saat Anda menulis kode yang sensitif terhadap performa.

Masukan dan umpan balik sangat saya sambut!

Belum ada komentar.

Belum ada komentar.