rksoftware

Visual Studio とか C# とかが好きです

C# 7・8 の復習その1

皆さん C# 書いてますか? 私はあまり書けていません。
特に、C# 7 以降は地味に書けない環境だったり、C# 8 などは (一部対応している仕様もありますが) .NET Framework で書けなかったり、何気に使えないことも多いのでなおさらです。

■ 復習しよう

というわけでここらで一回復習してみます。
今日のところはまず、自分用に公式ドキュメントへのリンクをメモしておきます。

公式のドキュメントはこちら

■ C# 7 の新機能リスト

out 変数 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-7#out-variables
タプル https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-7#tuples
破棄 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-7#discards
パターン一致 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-7#pattern-matching
ref ローカル変数と戻り値 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-7#ref-locals-and-returns
ローカル関数 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-7#local-functions
式形式のメンバーの追加 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-7#more-expression-bodied-members
throw 式 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-7#throw-expressions
一般化された async の戻り値の型 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-7#generalized-async-return-types
数値リテラルの構文の改善 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-7#numeric-literal-syntax-improvements

■ C# 7.1 の新機能リスト

async Mainメソッド https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-7-1#async-main
default リテラル式 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-7-1#default-literal-expressions
推論されたタプル要素の名前 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-7-1#inferred-tuple-element-names
ジェネリック型パラメーターのパターン マッチ https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-7-1#pattern-matching-on-generic-type-parameters

■ C# 7.2 の新機能リスト

安全で効率的なコードを記述するための手法 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-7-2#safe-efficient-code-enhancements
末尾以外の名前付き引数 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-7-2#non-trailing-named-arguments
数値リテラルでの先頭のアンダースコア (_) https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-7-2#leading-underscores-in-numeric-literals
private protected アクセス修飾子 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-7-2#private-protected-access-modifier
条件付きの ref 式 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-7-2#conditional-ref-expressions

■ C# 7.3 の新機能リスト

ピン留めを使用せずに fixed フィールドにアクセスできます。 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-7-3#indexing-fixed-fields-does-not-require-pinning
ref ローカル変数を再割り当てできます。 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-7-3#ref-local-variables-may-be-reassigned
stackalloc 配列で初期化子を使用できます。 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-7-3#stackalloc-arrays-support-initializers
パターンをサポートする型と共に fixed ステートメントを使用できます。 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-7-3#more-types-support-the-fixed-statement
追加のジェネリック制約を使用できます。 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-7-3#enhanced-generic-constraints
タプル型を使用して == と != をテストできます。 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-7-3#tuples-support--and-
式の変数をより多くの場所で使用できます。
自動実装プロパティのバッキング フィールドに属性をアタッチできます。 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-7-3#attach-attributes-to-the-backing-fields-for-auto-implemented-properties
引数が in によって異なる場合のメソッド解決が改善されました。 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-7-3#in-method-overload-resolution-tiebreaker
オーバーロードの解決のあいまいなケースが削減されました。 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-7-3#improved-overload-candidates

■ C# 8 の新機能リスト

読み取り専用メンバー https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-8#readonly-members
既定のインターフェイス メソッド https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-8#default-interface-methods
パターン マッチングの拡張機能 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-8#more-patterns-in-more-places
- switch 式 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-8#switch-expressions
- プロパティのパターン https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-8#property-patterns
- タプル パターン https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-8#tuple-patterns
- 位置指定パターン https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-8#positional-patterns
using 宣言 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-8#using-declarations
静的ローカル関数 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-8#static-local-functions
破棄可能な ref 構造体 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-8#disposable-ref-structs
Null 許容参照型 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-8#nullable-reference-types
非同期ストリーム https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-8#asynchronous-streams
非同期の破棄可能 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-8#asynchronous-disposable
インデックスと範囲 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-8#indices-and-ranges
null 合体割り当て https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-8#null-coalescing-assignment
構築されたアンマネージド型 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-8#unmanaged-constructed-types
入れ子になった式の stackalloc https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-8#stackalloc-in-nested-expressions
verbatim 補間文字列の拡張 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-8#enhancement-of-interpolated-verbatim-strings

秋葉原 C# もくもく会 #129 勉強会を開催しました

■ C# もくもく会

C# もくもく会 #129 を開催しました。

C# もくもく会 は東京の秋葉原で毎週木曜日に開催している .NET 系の勉強会です。
もくもく自習を基本とし、分からないことを教えあったり情報共有したりしている会です。 定期開催していますので、お時間のある時に遊びに来ていただければと思います。
ちょっと詰まった時、ネット上で聞くのははずかしいなぁ、という課題のできた時などにも思い出していただけると嬉しいです。
f:id:rksoftware:20200716200244j:plain

■ 今週の成果発表

今週は、もくもくの日でした。

  • ブログ書きました

ちなみにこの勉強会ですが、実は公序良俗に反しなければどのような技術を扱っても大丈夫です。そもそも C# エンジニアが C# だけしか使わないというわけではありませんし。

■初心者歓迎

このもくもく会には、入門者の方も多くご参加いただいています。 突然 C# やらなければならなくなって途方に暮れている方、何となく C# をやってきたけど改めて見直してみたい方なども大歓迎です。
入門セミナー代わりでのご参加も歓迎です。プログラミング入門者の方も是非遊びに来てください。

特に C# で課題をお持ちでなくても是非遊びに来てください。

■ 目指す勉強会スタイル

世界一敷居の低い勉強会を目指しています。

何か聞きたいことがある場合は、聞く相手を決めずに独り言のようにつぶやくと誰かが拾ってくれる

何か共有したい情報を見つけた場合も、聞く相手を決めずに独り言のようにつぶやくと誰かが拾ってくれる

そんなスタイルでやっています。

■ 次回予定

次回は 2020/07/30 に開催予定です。

C# に関心のある方、是非遊びに来てください。

Visual Studio の 16.6.4 がリリースされました

Visual Studio のアップデート 16.6.4 がリリースされました。

今回はセキュリティの対策が含まれます。早めにアップデートしておきましょう。

■ 更新内容

問題の解決

次の問題が対策されました。

  • ファイルを新規作成 (メニューヵら / Ctrl+N ショートカットで) した際に Visual Studio がクラッシュする

そのほか、今回のアップデートはセキュリティに関する内容 3 件が含まれます。最速でアップデートしましょう。

.NET Core

今回のセキュリティアップデートは .NET Core のアップデートも含みます。Visual Studio を更新すれば .NET Core もアップデートされます。もし Visual Studio のインストールされていない環境が手元にある場合は、.NET Core のアップデートをしておきましょう!

なるべく早くアップデート

前述のように、セキュリティアップデートを含みます。アップデートしておきましょう。

■ 更新方法

Visual Studio の更新はメニューの ツール > ツールと機能を取得 で開くインストーラーから行えます。

システムエンジニアに必要な能力が判明! その能力とは?

システムエンジニアに必要な能力が判明! その能力とは?

前日、何気に投稿したアンケートに割と多くの方が回答をしてくださいました。そのアンケート結果が次です。

まずは意外? にも技術力が必要であるとしている方が、マネジメント力や営業力が必要とする方よりも多くいるということが分かります。一般に経営層管理層と思われる方々から技術は不要という考えの言葉を聞く機会がありますが、実際現場では技術は必要とされているということでしょうか?

しかしそれら3つの力を一つにしても遠く及ばない絶対強者がいました。そう、それがエスパー能力です。システムエンジニアには何よりもまず、優秀なエスパーでなければ務まらないようです。おおよそ3分の2の方が、エスパー能力は最も重要であると考えているようです。

しかし、このエスパー能力、ただエスパー能力といっただけでは具体的にどのように身に着ければ良いのか? 一流のシステムエンジニアの方々がどのように身に着けたのか分かりません。

チベットの奥地で修業するのでしょうか? ヴェネチア近くの島でしょうか?

すこしシステムエンジニアとエスパー能力について調べてみました。

簡単に検索をすると...

  • エスパー能力が必要であることは悲しい事
  • エスパー能力は3つの力を包含する上位能力

であることが分かりました。しかし、その力を身に着ける修業方法は分かりませんでした。

実際に身に着ける方法は分かりませんでしたが、システムエンジニアに必要なエスパー能力であるということ。
みなさん、いかがでしたか?

秋葉原 C# もくもく会 #128 勉強会を開催しました

■ C# もくもく会

C# もくもく会 #128 を開催しました。

C# もくもく会 は東京の秋葉原で毎週木曜日に開催している .NET 系の勉強会です。
もくもく自習を基本とし、分からないことを教えあったり情報共有したりしている会です。 定期開催していますので、お時間のある時に遊びに来ていただければと思います。
ちょっと詰まった時、ネット上で聞くのははずかしいなぁ、という課題のできた時などにも思い出していただけると嬉しいです。
f:id:rksoftware:20200709201001j:plain

■ 今週の成果発表

今週は、もくもくの日でした。

  • ブログ書けませんでした
  • macが起動しませんでした

ちなみにこの勉強会ですが、実は公序良俗に反しなければどのような技術を扱っても大丈夫です。そもそも C# エンジニアが C# だけしか使わないというわけではありませんし。

■初心者歓迎

このもくもく会には、入門者の方も多くご参加いただいています。 突然 C# やらなければならなくなって途方に暮れている方、何となく C# をやってきたけど改めて見直してみたい方なども大歓迎です。
入門セミナー代わりでのご参加も歓迎です。プログラミング入門者の方も是非遊びに来てください。

特に C# で課題をお持ちでなくても是非遊びに来てください。

■ 目指す勉強会スタイル

世界一敷居の低い勉強会を目指しています。

何か聞きたいことがある場合は、聞く相手を決めずに独り言のようにつぶやくと誰かが拾ってくれる

何か共有したい情報を見つけた場合も、聞く相手を決めずに独り言のようにつぶやくと誰かが拾ってくれる

そんなスタイルでやっています。

■ 次回予定

次回は 2020/07/16 に開催予定です。

C# に関心のある方、是非遊びに来てください。

Microsoft MVP を再受賞しました

今年も私の行ってきたことが Microsoft 様の目指す方向といい感じに同じ方向を向けていたのかなと思います。

Microsoft MVP をまた今年もいただくことができました。受賞カテゴリは Developer Technologies です。

これも勉強会に参加してくださった皆様、登壇の機会を与えてくださった方々、アドバイスをくださった方々のおかげです。 まだまだコミュニティ活動も全然わからない私ですが、より一層頑張って活動して行きますので今後もよろしくお願いいたします。

■ これまでの活動

これまでは、体験の提供を重視して活動してきました。

日本の特に .NET を扱っている IT エンジニア(私はシステムエンジニアと IT エンジニアは別物と考えていて、実際は大半システムエンジニア)は自社と取引先の世界にこもって世界に取り残されてしまうことが多いのかな、と考えています。
そこで外のエンジニアと会ったり外のワークスペース(コワーキングスペースだったり貸会議室だったり企業のオフィスだったり)へ行くという体験の提供を重視してきました。

■ これからの活動

現在は人々が直接会うことはなくオンラインで会う時代です。

コミュニティ活動も既にオンラインで行っていますし、今後もオンラインで行っていきます。今のところ C# Tokyo コミュニティ運営メンバーの皆さんのお力でオンラインイベントが成功できています。
余談ですが、コミュニティでは運営メンバーを常に募集中です。

■ これからも

これからも変わらずぼちぼちやっていくつもりです。
今後もよろしくお願いいたします。

秋葉原 C# もくもく会 #127 勉強会を開催しました

■ C# もくもく会

C# もくもく会 #127 を開催しました。

C# もくもく会 は東京の秋葉原で毎週木曜日に開催している .NET 系の勉強会です。
もくもく自習を基本とし、分からないことを教えあったり情報共有したりしている会です。 定期開催していますので、お時間のある時に遊びに来ていただければと思います。
ちょっと詰まった時、ネット上で聞くのははずかしいなぁ、という課題のできた時などにも思い出していただけると嬉しいです。
f:id:rksoftware:20200704131945j:plain

■ 今週の成果発表

今週は、もくもくの日でした。

  • ブログ書きました
  • GoF 勉強
  • インタフェース、ジェネリックを勉強
  • Linux で C# 動かしました
  • 昔のソース読んでました

ちなみにこの勉強会ですが、実は公序良俗に反しなければどのような技術を扱っても大丈夫です。そもそも C# エンジニアが C# だけしか使わないというわけではありませんし。

■初心者歓迎

このもくもく会には、入門者の方も多くご参加いただいています。 突然 C# やらなければならなくなって途方に暮れている方、何となく C# をやってきたけど改めて見直してみたい方なども大歓迎です。
入門セミナー代わりでのご参加も歓迎です。プログラミング入門者の方も是非遊びに来てください。

特に C# で課題をお持ちでなくても是非遊びに来てください。

■ 目指す勉強会スタイル

世界一敷居の低い勉強会を目指しています。

何か聞きたいことがある場合は、聞く相手を決めずに独り言のようにつぶやくと誰かが拾ってくれる

何か共有したい情報を見つけた場合も、聞く相手を決めずに独り言のようにつぶやくと誰かが拾ってくれる

そんなスタイルでやっています。

■ 次回予定

次回は 2020/07/09 に開催予定です。

C# に関心のある方、是非遊びに来てください。