四、使用共享项目

共享项目在.NET Core和通用Windows应用中提供了一种共享代码的方法,它允许部分特定平台的代码共存。通过预处理器指令处理平台差异,如在.NET Core和UWP中的Message类实现。使用Visual Studio的Reference Manager可以方便地添加共享项目,同时编辑器能根据预处理器定义灰显不可用的代码。

共享项目并不是真正的库,但它们仍然有助于共享代码。共享项目可以替代一个库来共享代码,但是包含代码和共享项目的项目。通过这种方式,可以将特定与平台的代码添加到共享项目中。然而,这个特性只有在没有太多代码差异的情况下才有用。当存在大量的代码差异时,创建特定于平台的库可能更好。

通过下面的代码示例,创建了.NET Core 应用程序和通用Windows应用程序,它们都引用了共享项目。共享项目包含可以同时用于两个平台的代码,但每个都包含特定于平台的代码。

不同之处在于不能用于所有地方的名称空间。可以使用预处理器指令来检查条件编译符号。预处理器指令Windows_UWP是用通用Windows应用程序定义的:

using System;
#if WINDOWS_UWP
using Windows.UI.Popups;
#endif

Message类定义Show、ShowAsync和Add方法。Add方法适用于每个平台。只有在定义NETCOREAPP2_0指令时,Show方法才可用,而ShowAsync方法仅适用于UWP应用程序。类可以用internal访问修饰符定义,因为它不在程序集之外使用:

    internal class Message
    {
#if NETCOREAPP3_1
        public static void Show(string message)
        {
            Console.WriteLine(message);
        }
#elif WINDOWS_UWP
        public static async Task ShowAsync(string message)
        {
            await new MessageDialog(message).ShowAsync();
        }
#endif
        public static int Add(int x, int y) => x + y;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值