Implementacja cech w języku C# przy użyciu Roslyn Source Generators

##plugins.themes.bootstrap3.article.main##

Mykhailo Pozur

mixalchik545@gmail.com

Viktoria Voitko

dekanfki@i.ua

https://orcid.org/0000-0002-3329-7256
Svitlana Bevz

bevz.svitlana.v@gmail.com

https://orcid.org/0000-0002-4651-2453
Serhii Burbelo

smburbelo@gmail.com

https://orcid.org/0000-0002-8554-2292
Olena Kosaruk

lena.kosaruk@vntu.edu.ua

https://orcid.org/0000-0003-1346-2944

Abstrakt

Artykuł przedstawia podejście do implementacji funkcjonalności cech w języku programowania C# poprzez wykorzystanie Roslyn Source Generators, narzędzia do metaprogramowania w czasie kompilacji wprowadzonego w .NET5. Traity, które są komponowalnymi jednostkami drobnoziarnistego ponownego użycia, mogą przynieść korzyści językowi C# poprzez wprowadzenie mechanizmu ponownego użycia zachowania w kontekście pojedynczego dziedziczenia. W artykule opisano projekt i implementację generatora źródłowego, który umożliwia dodawanie adnotacji do klas za pomocą atrybutów metadanych, automatycznie wstrzykując odpowiednie definicje elementów członkowskich w czasie kompilacji. Aby osiągnąć lepszą wydajność generowania kodu w czasie projektowania, zastosowano przyrostowe generatory źródeł. Szczegółowo opisano skład członków cech, koncentrując się na rozwiązywaniu konfliktów nazw i bezpieczeństwie typów poprzez wykorzystanie interfejsów i mechanizmu zastępowania. Omówiono i zaimplementowano również definiowanie niepublicznych członków w kontekście cechy, co pozwala na lepsze ponowne wykorzystanie kodu. Artykuł podsumowuje, że funkcje na poziomie języka, takie jak cechy, można zaimplementować w języku C# za pomocą Roslyn Source Generators, demonstrując w ten sposób potencjał takiego narzędzia i ogólnie metaprogramowania.

Słowa kluczowe:

C#, traits, programowanie obiektowe, metaprogramowanie, generowanie kodu

Cele Zrównoważonego Rozwoju (SDG)

  • Innowacyjność, Przemysł, Infrastruktura

Bibliografia

##plugins.themes.bootstrap3.article.details##

Implementacja cech w języku C# przy użyciu Roslyn Source Generators. (2025). Informatyka, Automatyka, Pomiary w Gospodarce i Ochronie Środowiska, 15(4), 151-157. https://doi.org/10.35784/iapgos.8488