みなさんお待ちかねの .NET 5 のリリースが迫っています。もう少しだけ待ちの日々ですが .NET 5 の RC1 版が公開されて動かすことができます。
そこで、実際に環境を整えて動かしてみましょう。
■ 用意するもの
- Visual Studio 2019 の Preview 版をインストール
- .NET 5 SDK をインストール (私は Windows の x64 インストーラーでインストールしました)
■ プロジェクトの作成
dotnet
コマンドで作成してもいいのでしょうが、今回は折角インストールしたので Visual Studio 2019 Preview でプロジェクトを作成してみます。
お試しならばコンソールアプリが鉄板ですが、さらに折角なので WPF で行ってみましょう。
WPF App (.NET Core)
を選択
出来上がったプロジェクトのプロパティを開いて、対象のフレームワーク が .NET Core 3.1
になっているのを .NET 5.0
に変更
これで実行すれば、.NET 5 の WPF アプリなのですが、実際起動するアプリの見た目は普通の WPF アプリなので .NET 5 のコードを書いて観ます。
.NET 5 で使える C# 9 の新機能に Records という機能があります。これを試してみます。
■ C# 9.0
お試しコードは先の ブログ記事 で書かれている LoginResource
レコードにしてみます。
using System.Windows;
namespace WpfApp1
{
<summary>
</summary>
public record LoginResource(string Username, string Password, bool RememberMe);
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
LoginResource lr = new("name", "pass", true);
MessageBox.Show(lr.ToString());
}
}
}
<Window xClass="WpfApp1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlnsx="http://schemas.microsoft.com/winfx/2006/xaml"
xmlnsd="http://schemas.microsoft.com/expression/blend/2008"
xmlnsmc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlnslocal="clr-namespace:WpfApp1"
mcIgnorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<Button Content=".NET 5" Click="Button_Click"/>
</Grid>
</Window>
■ 実行
実行してボタンをクリックしてみます。
計画通り! Records の ToString() 結果は分かり易くていいですね。
■ .NET Core 3.1 に戻してみる
計画通り実行されましたが、実際 .NET 5 だから Records を使えていたことを確認するために .NET Core 3.1 に戻してみます。
またしても計画通り! Records が使えずエラーになりました。
■ さあやってみよう!
ちょっとインストールしてみるだけで、なんと .NET 5 が試せました。簡単ですね。