对 C# MAUI 感到困惑 - #if <platform> 是如何工作的?

问题描述 投票:0回答:1

我正在使用 VS 17.11 和 MAUI 8。

有很多关于“依赖注入”的文章,包括基于平台的文章。

但是这样的事情似乎也是可能的:

#if IOS
            string platformName = "This is iOS";
#elif WINDOWS
            string platformName = "This is Windows";
#elif ANDROID
            string platformName = "This is Android";
#else
            string platformName = "This is UNKNOWN platform";
#endif

但是,这到底是如何运作的呢? 我的印象是 MAUI 项目将构建共享代码(作为库?),然后链接到特定于平台的代码,所有这些都使用“通用中间语言”。 但是,有了这种机制,似乎每个平台都会单独构建。

我错过了什么吗? 如果这是一种合理的做事方式,那么使用依赖注入来完成这样简单的事情是否有优势?

dependency-injection maui cil
1个回答
0
投票

首先可以查看官方文档关于条件编译

#if <Platform>
是预处理器指令。

仅当指定的符号已定义时,C# 编译器才会编译 #if 指令和 #endif 指令之间的代码,否则当 ! 时未定义。使用 not 运算符。

关于Maui中的依赖注入的官方文档没有提及平台代码。依赖注入几乎用在maui共享库而不是平台部分。

© www.soinside.com 2019 - 2024. All rights reserved.