ブログ 2022/01/25 【C# 11 候補】 トップ レベル ステートメントの Main に属性を付ける ちょっと体調崩し気味だったので軽いネタに逃げる感じでわかりやすい C# 11 候補を1つ。 トップ レベル ステートメント(が作る Main メソッド)に属性を付けたいという話があります。 もう、割かし以下の利用例1個で説明終わりな感じ。 [main: STAThread] using System.Windows; Clipboard.SetData(DataFormats.Text, Environment.OSVersion.ToString()); 今、これと… 続きを読む 2022/01/11 MemberNotNull (値型) 判定 こないだ、[null フロー解析]と似たノリで、構造体の default フロー解析が必要という話をしました。 まあ、難航しそうではあるんですが… とはいえ実は現在でも、「null チェックといいつつ、構造体に対しても働くフロー解析」があったりします。 MemberNotNull nullable enable のとき、 非 null 参照型のフィールドやプロパティは、 コンストラクター内でちゃんと初期化する必要があります。 例えば以下のコードはプロパティ定義の行に警告。 c… 続きを読む 2022/01/10 【Visual Studio】 Naming Style 設定 こないだの C# 配信で、 「フィールドの naming style を _camelCase にするための設定を .editorconfig で書いておきたい」という話になったやつ。 .editorconfig がらみの話になったのは 1:57:52 頃~ private/internal フィールドの名前規約 長らく C#/.NET 方面は private なところの規約についてはそこまでうるさく言われない文化だったりしたのでそこまで統一見解はないんですが、 皆様は private… 続きを読む 2022/01/07 【C# 11 候補】defaultable value type ImmutableArray に対してコレクション初期化子は使えないという話でちょっと出しましたが、この問題の原因の1つは「既定値(default、0初期化)のまま放置してはいけない型がある」というものです。 default 放置問題は「null を null のまま放置してはいけない」という問題に直結するので、 null 許容参照型とも関連します。 ということで「クラスの null 解析と同様に、構造体の default に関するフロー解析を行う」という提案が前々からあるんですが。 状… 続きを読む 2022/01/04 【C# 11 で再検討】Countable リスト パターンの実装で、「Count もしくは Length を持った型なら何にでも使える」と説明しました。 C# ではこれを「Countable」と呼んでいます。 この Countable というコンセプト、最初に出て来たのは C# 8.0 の Index のときです。 で、リスト パターンやコレクション リテラルでも Countable が出て来たところで、 Index に対する Countable の扱いも拡張しよう見たいな話がちょこっと出ています。 ちょっと課題もあるので C… 続きを読む 新しい投稿へ 過去の投稿へ
2022/01/25 【C# 11 候補】 トップ レベル ステートメントの Main に属性を付ける ちょっと体調崩し気味だったので軽いネタに逃げる感じでわかりやすい C# 11 候補を1つ。 トップ レベル ステートメント(が作る Main メソッド)に属性を付けたいという話があります。 もう、割かし以下の利用例1個で説明終わりな感じ。 [main: STAThread] using System.Windows; Clipboard.SetData(DataFormats.Text, Environment.OSVersion.ToString()); 今、これと… 続きを読む
2022/01/11 MemberNotNull (値型) 判定 こないだ、[null フロー解析]と似たノリで、構造体の default フロー解析が必要という話をしました。 まあ、難航しそうではあるんですが… とはいえ実は現在でも、「null チェックといいつつ、構造体に対しても働くフロー解析」があったりします。 MemberNotNull nullable enable のとき、 非 null 参照型のフィールドやプロパティは、 コンストラクター内でちゃんと初期化する必要があります。 例えば以下のコードはプロパティ定義の行に警告。 c… 続きを読む
2022/01/10 【Visual Studio】 Naming Style 設定 こないだの C# 配信で、 「フィールドの naming style を _camelCase にするための設定を .editorconfig で書いておきたい」という話になったやつ。 .editorconfig がらみの話になったのは 1:57:52 頃~ private/internal フィールドの名前規約 長らく C#/.NET 方面は private なところの規約についてはそこまでうるさく言われない文化だったりしたのでそこまで統一見解はないんですが、 皆様は private… 続きを読む
2022/01/07 【C# 11 候補】defaultable value type ImmutableArray に対してコレクション初期化子は使えないという話でちょっと出しましたが、この問題の原因の1つは「既定値(default、0初期化)のまま放置してはいけない型がある」というものです。 default 放置問題は「null を null のまま放置してはいけない」という問題に直結するので、 null 許容参照型とも関連します。 ということで「クラスの null 解析と同様に、構造体の default に関するフロー解析を行う」という提案が前々からあるんですが。 状… 続きを読む
2022/01/04 【C# 11 で再検討】Countable リスト パターンの実装で、「Count もしくは Length を持った型なら何にでも使える」と説明しました。 C# ではこれを「Countable」と呼んでいます。 この Countable というコンセプト、最初に出て来たのは C# 8.0 の Index のときです。 で、リスト パターンやコレクション リテラルでも Countable が出て来たところで、 Index に対する Countable の扱いも拡張しよう見たいな話がちょこっと出ています。 ちょっと課題もあるので C… 続きを読む