ブログ 2021/11/14 TargetFramework net5.0 なコードを .NET 6 ランタイムで動かす .NET のアップデート 昔の C# アプリ (例えば去年作った TargetFramework net5.0 なアプリ)をそのまま最新のランタイム(例えば .NET 6 ランタイム)で動かすことを考えます。 .NET は API レベルでの破壊的変更はめったにないので、 「API が合わなくてロードできない」みたいな根本的な問題はほぼ起こりません。 一方、挙動レベルでは時々破壊的変更があるんで、確実に動く保証はなかったりします。 (それでも、体感、9割方は動きますが。) ここ数バー… 続きを読む 2021/11/12 【C# 10.0】 ImplicitUsings (自動 global using) 今日は先日のファイル スコープ名前空間の話に続いて、 global using に関する話を最初にブログに書いたときにちょこっと「正式リリースまでには変更が掛かる予定」と話していた ImplicitUsings の話をしたいと思います。 global using 何回か話してはいるんですが、 .NET 6 SDK から、C# プロジェクトのテンプレートの初期状態が以下のような(コメントを除けば)1行だけのソースコードになっています。 Console.WriteLine("Hello,… 続きを読む 2021/11/10 【C# 10.0】ファイル スコープ名前空間 (一斉置換設定) 昨日、C# 10.0 が正式リリースされたわけですが、皆様もう C# 10.0 へのアップグレードはお済でしょうか(当日アプグレが当たり前のような口調)。 まあ、 C# はそんなに大きな破壊的変更はしない言語ですし、 TargetFramework や LangVersion を書き換えるだけならそこまで大きな問題は起きないんじゃないかと思います。 (たぶん。 僕は CryptoStream の破壊的変更由来のテスト失敗を1件踏みましたが。) あえて踏み込むのであれば、 名前空… 続きを読む 2021/11/05 RC 出てた話からの、GA 迫ってたりする話 8月からしばらくブログをさぼっていたわけですが。 ブログとしてはお久しぶりです。 C# 10.0 記事 まあ、とはいえ、別に消息不明になっていたわけでもなく、C# によるプログラミング入門の方の記事書きをちゃんとしていただけでして。 更新履歴 2021/10/24 更新:C# 10.0 の新機能 [C#] 2021/10/17 更新:ローカル関数と匿名関数 [C#] 2021/09/23 更新:C# 10.0 の補間文字列の… 続きを読む 2021/08/22 .NET のカルチャー依存 API 問題 以下のコード、実行環境によって出力結果が変わります。 Console.WriteLine(new DateTime(2021, 8, 22)); 日本語 Windows 環境だと 2021/08/22 0:00:00 と表示されると思いますが、 OS 設定でカルチャーを変更すると別の書式になります。 例えば、en-US カルチャーにすると 8/22/2021 12:00:00 AM になります。 要するに、DateTime.ToString は OS のカルチャー依存になってい… 続きを読む 新しい投稿へ 過去の投稿へ
2021/11/14 TargetFramework net5.0 なコードを .NET 6 ランタイムで動かす .NET のアップデート 昔の C# アプリ (例えば去年作った TargetFramework net5.0 なアプリ)をそのまま最新のランタイム(例えば .NET 6 ランタイム)で動かすことを考えます。 .NET は API レベルでの破壊的変更はめったにないので、 「API が合わなくてロードできない」みたいな根本的な問題はほぼ起こりません。 一方、挙動レベルでは時々破壊的変更があるんで、確実に動く保証はなかったりします。 (それでも、体感、9割方は動きますが。) ここ数バー… 続きを読む
2021/11/12 【C# 10.0】 ImplicitUsings (自動 global using) 今日は先日のファイル スコープ名前空間の話に続いて、 global using に関する話を最初にブログに書いたときにちょこっと「正式リリースまでには変更が掛かる予定」と話していた ImplicitUsings の話をしたいと思います。 global using 何回か話してはいるんですが、 .NET 6 SDK から、C# プロジェクトのテンプレートの初期状態が以下のような(コメントを除けば)1行だけのソースコードになっています。 Console.WriteLine("Hello,… 続きを読む
2021/11/10 【C# 10.0】ファイル スコープ名前空間 (一斉置換設定) 昨日、C# 10.0 が正式リリースされたわけですが、皆様もう C# 10.0 へのアップグレードはお済でしょうか(当日アプグレが当たり前のような口調)。 まあ、 C# はそんなに大きな破壊的変更はしない言語ですし、 TargetFramework や LangVersion を書き換えるだけならそこまで大きな問題は起きないんじゃないかと思います。 (たぶん。 僕は CryptoStream の破壊的変更由来のテスト失敗を1件踏みましたが。) あえて踏み込むのであれば、 名前空… 続きを読む
2021/11/05 RC 出てた話からの、GA 迫ってたりする話 8月からしばらくブログをさぼっていたわけですが。 ブログとしてはお久しぶりです。 C# 10.0 記事 まあ、とはいえ、別に消息不明になっていたわけでもなく、C# によるプログラミング入門の方の記事書きをちゃんとしていただけでして。 更新履歴 2021/10/24 更新:C# 10.0 の新機能 [C#] 2021/10/17 更新:ローカル関数と匿名関数 [C#] 2021/09/23 更新:C# 10.0 の補間文字列の… 続きを読む
2021/08/22 .NET のカルチャー依存 API 問題 以下のコード、実行環境によって出力結果が変わります。 Console.WriteLine(new DateTime(2021, 8, 22)); 日本語 Windows 環境だと 2021/08/22 0:00:00 と表示されると思いますが、 OS 設定でカルチャーを変更すると別の書式になります。 例えば、en-US カルチャーにすると 8/22/2021 12:00:00 AM になります。 要するに、DateTime.ToString は OS のカルチャー依存になってい… 続きを読む