ブログ 2022/11/24 共変配列事故 またちょっと Gist に書き捨ててたコードが増えてきたので供養ブログをしばらく書いていこうかと。 (今年はまだ少な目。一人アドベントカレンダーな量にはならず。) 配列の共変性 悪名高いんですが、C# のというか、.NET の配列は共変だったりします。 // ↓.NET 的に許されていはいるものの、 items[0] = new Base(); が例外を起こすので今となってはあんまり使いたくない機能。 // 意図的に使うことはめったにないものの… Base[] items = n… 続きを読む 2022/10/31 Blazor Wasm 実動作デモはじめました 昔、うちのサイトのページ内に iframe で張り付けとくような実動作デモをいろいろと Silverlight 作ってたんですが、 Silverlight のサポート終了後、移行先がなくてほったらかしになっていました。 「その時が来たら本気出す」とかいう雑なタグをつけて放置してたんですが、 そろそろ Blazor WebAssembly 化でもしてみようかという感じで数年越しに作業する気になり。 とりあえず、ソートのページで使っていたソートの可視化プログラムを移植。 ソート概要 … 続きを読む 2022/08/13 .NET 7 Preview 7 で、C# 11 の機能が一通りそろったみたい 久々のブログになります。 C# 11 の機能追加があるたびに YouTube 配信ではちょくちょく紹介していましたが、 こっちではかなりの久々。 そういえば去年とかは新しい Preview が出るたびに「今回はこの機能が実装されたよ」一覧くらいはブログに書いてたなと思いつつ。 まあ、今年は早い段階から「C# 11.0 の新機能」の方を埋める作業をしているので、何もしてなかったわけでもないんですが。 ちなみに、「C# 11.0 の新機能」の方は現在、 進捗 12/19 です。 .NE… 続きを読む 2022/05/26 C# でキーワードをできるだけ多く並べる遊び 以下のコード、有効な(エラーなくコンパイルできる) C# コードの一部です。 きっかけ Twitter でこんなのを見かけて。 Can you think of a valid C# program containing 16 keywords in a row, where at least half of them are all different?— Kirill Osenkov 🇺🇦 (@KirillOsenkov) May 25, 2022 雑に… 続きを読む 2022/05/04 引数 null チェックの !!、取りやめ !! を使った引数の null チェック、なくなるって。 引数 null チェック 2月にブログに書きましたが、 Visual Studio 17.1 Preview 3の頃、C# 11 候補として「引数の null チェック」構文が入っていました。 m(null); // ArgumentNull 例外が出る。 void m(string x!!) { } 今現在(VS 17.2 Preview 5)でもこの構文は生きているんですが、次(たぶん、17.2正式リリースでも… 続きを読む 新しい投稿へ 過去の投稿へ
2022/11/24 共変配列事故 またちょっと Gist に書き捨ててたコードが増えてきたので供養ブログをしばらく書いていこうかと。 (今年はまだ少な目。一人アドベントカレンダーな量にはならず。) 配列の共変性 悪名高いんですが、C# のというか、.NET の配列は共変だったりします。 // ↓.NET 的に許されていはいるものの、 items[0] = new Base(); が例外を起こすので今となってはあんまり使いたくない機能。 // 意図的に使うことはめったにないものの… Base[] items = n… 続きを読む
2022/10/31 Blazor Wasm 実動作デモはじめました 昔、うちのサイトのページ内に iframe で張り付けとくような実動作デモをいろいろと Silverlight 作ってたんですが、 Silverlight のサポート終了後、移行先がなくてほったらかしになっていました。 「その時が来たら本気出す」とかいう雑なタグをつけて放置してたんですが、 そろそろ Blazor WebAssembly 化でもしてみようかという感じで数年越しに作業する気になり。 とりあえず、ソートのページで使っていたソートの可視化プログラムを移植。 ソート概要 … 続きを読む
2022/08/13 .NET 7 Preview 7 で、C# 11 の機能が一通りそろったみたい 久々のブログになります。 C# 11 の機能追加があるたびに YouTube 配信ではちょくちょく紹介していましたが、 こっちではかなりの久々。 そういえば去年とかは新しい Preview が出るたびに「今回はこの機能が実装されたよ」一覧くらいはブログに書いてたなと思いつつ。 まあ、今年は早い段階から「C# 11.0 の新機能」の方を埋める作業をしているので、何もしてなかったわけでもないんですが。 ちなみに、「C# 11.0 の新機能」の方は現在、 進捗 12/19 です。 .NE… 続きを読む
2022/05/26 C# でキーワードをできるだけ多く並べる遊び 以下のコード、有効な(エラーなくコンパイルできる) C# コードの一部です。 きっかけ Twitter でこんなのを見かけて。 Can you think of a valid C# program containing 16 keywords in a row, where at least half of them are all different?— Kirill Osenkov 🇺🇦 (@KirillOsenkov) May 25, 2022 雑に… 続きを読む
2022/05/04 引数 null チェックの !!、取りやめ !! を使った引数の null チェック、なくなるって。 引数 null チェック 2月にブログに書きましたが、 Visual Studio 17.1 Preview 3の頃、C# 11 候補として「引数の null チェック」構文が入っていました。 m(null); // ArgumentNull 例外が出る。 void m(string x!!) { } 今現在(VS 17.2 Preview 5)でもこの構文は生きているんですが、次(たぶん、17.2正式リリースでも… 続きを読む