SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

.NET Core 3で始めるWPFアプリ開発

.NET Core 3で始めるWPFアプリ開発――.NET Coreって? WPFって?

.NET Core 3で始めるWPFアプリ開発 第2回

  • X ポスト
  • このエントリーをはてなブックマークに追加

C#の新機能

 今回、解説していく中で次のようなC#の新機能も紹介しました。

ラムダ式

 ラムダ式はC# 3.0で導入されました。C# 6からは、メソッドや読み取り専用プロパティの本体に式形式のラムダを利用できるようになっています。

 ラムダ式を使うと、デリゲートのためにいちいちメソッドを作らずに済みます。

 例えば今回、「XAMLの意義」のところで次のようなコードを書きました。Button2_Clickメソッドの本体はラムダ式になっています。

ボタンにイベントハンドラーを結び付けるコード(MainWindow.xaml.cs
button2.Click += Button2_Click; // イベントハンドラーを設定

……省略……
  
private void Button2_Click(object sender, RoutedEventArgs e)
  => Text1.Text = "C#";

 このButton2_Clickメソッドを削除し、イベントハンドラーを設定するところにラムダ式を直接書いてもよいのです(次のコード)。

ボタンにイベントハンドラーを結び付けるコード(ラムダ式バージョン)
button2.Click += (s,e) => Text1.Text = "C#"; // イベントハンドラーを設定

オブジェクト初期化子

 オブジェクト初期化子もC# 3.0で導入された機能です。

 オブジェクトのインスタンス化とプロパティへの代入を、まとめて書けます(次のコード)。打鍵量が減るのは嬉しいですね。そればかりではなく、匿名型を使うにはオブジェクト初期化子が必須になります。

オブジェクト初期化子を使った書き方と、従来の書き方
// オブジェクト初期化子を使った書き方
var button2 = new Button // ボタンのインスタンス化
  {
    // プロパティを設定
    Content = "C#で組み立てたボタン",
    Margin = new Thickness(  0.0, 0.0,  0.0, 5.0),
    Padding = new Thickness(10.0, 5.0, 10.0, 5.0),
  };

// 従来の書き方では以下のようになります
var button2 = new Button(); // ボタンのインスタンス化
// プロパティを設定
button2.Content = "C#で組み立てたボタン";
button2.Margin = new Thickness(  0.0, 0.0,  0.0, 5.0);
button2.Padding = new Thickness(10.0, 5.0, 10.0, 5.0);

まとめ

 今回は、.NET Framework/Coreの仕組みや、.NET Coreの将来、そしてWPFの特徴などを学びました。

 WPFは、今後も.NET Coreの進化に歩調を合わせて、Windowsデスクトップアプリ用のGUIフレームワークとして使われ続けていくでしょう。Windowsの描画システム(DirectXとDWM)に革新が起こらない限りは安泰だともいえます。

 また、WPFアプリの作り方である「XAMLでUIを定義して、コードとはデータバインディングやコマンドで結合する」という開発手法は、Windows 10のUWPやクロスプラットフォーム開発のXamarin.Formsとも共通します。iOS/Android用のアプリをUWP+Uno PlatformやXamarin.Formsで開発するときも、WPF開発のスキルが活かせるのです。

 次回からは、XAMLでUIを作る方法を何回かに分けて解説していきます。ご期待ください。

関連リンク

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
.NET Core 3で始めるWPFアプリ開発連載記事一覧
この記事の著者

biac(ばいあっく)

HONDA R&Dで自動車の設計をやっていた機械屋さんが、技術の進化スピードに魅かれてプログラマーに。以来30年ほど、より良いコードをどうやったら作れるか、模索の人生。わんくま同盟の勉強会(名古屋)で、よく喋ってたりする。2014/10~2019/6 Microsoft MVP (Windows Devel...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/11854 2020/01/06 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング