Oh boy do I have news for you! Xamarin [1] does exactly this. You write your app logic in C#, which is then AOT compiled to native code. You the write the UI for each platform using native APIs (although you can use Xamarin.Forms if you truly want the same UI across platforms). Xamarin supports Windows, macOS, Linux, Android, and iOS.
[1] https://visualstudio.microsoft.com/xamarin/