@rlamacraft If you haven't already, check out C# 8. They built specific improvements for that very problem into the language itself.
And with .NET now fully moved over to core, it's now fully portable and cross-platform.
I'd continue, but this already sounds too much like an ad.