rksoftware

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

C#

.NET 9 Preview 1 で追加された LINQ メソッドの一つ、AggregateBy を書いてみる

.NET 9 Preview 1 で追加された LINQ メソッドを書いてみています。 rksoftware.hatenablog.com その中で前回、.AggregateBy でちょっと特殊な使い方をしたくて迷っていました。今回はそこを少し深く語ってみます。 ■ これまで .Aggregate でよくやっていた…

.NET 9 Preview 1 で追加された LINQ メソッドを書いてみる

.NET 9 Preview 1 で LINQ メソッドの .CountBy と AggregateBy が追加されたので書いてみます。 char[] t = ['a', 'b', 'a', 'a', 'b', 'c']; { IEnumerable<KeyValuePair<char, int>> m = t.CountBy(x => x); // a: 3, b: 2, c: 1 Console.WriteLine(string.Join(", ", m.Select(x </keyvaluepair<char,>…

実行タイミングのわかりにくいコードを書こう! 静的コンストラクター と モジュール初期化子

C#

C# には静的コンストラクターという機能があります。きっと書いたことがある人の方が少ない機能だと思います。 そして、モジュール初期化子というのもあります。こっちはさらに書いたことがある人が少ない機能だと思います。 静的コンストラクター learn.mic…

.NET Aspire のコンテナ部分

以前、.NET Aspire を動かしてみました。 rksoftware.hatenablog.com その際、Blazor のフロントエンドと、API のバックエンド、テレメトリーの送信、Redis コンテナがセットになったテンプレートがその形態の一つだとわかりました。 しかし、コンテナが見つ…

.NET Aspire を動かしてみる

.NET Conf 2023 で突然現れた .NET Aspire とは何なのでしょうか? 正直まったく分かっていません。大きすぎることと、細かいことは多少わかるのですが、何なのかというところが何よりまったくわかりません! 動かしてみる というわけでとりあえず動かしてみ…

キャストと as と TryParse

C#

最近計測に凝っているので、キャストと as と TryParse も計測してみました。 キャストが一番早いのは当然として、as と TryParse が条件によって違う結果に。 int を object にしてからまた int に戻す際、as より TryParse の方が早いと。この経験がが役に…

public static void Method(this ref string s)

C#

拡張メソッドの引数に ref 参照型 public static void Method(this ref string s) ってできないんですね。値型ならできますけれど。 Console.WriteLine(); static class Class { public static int Method(this object o) => 0; public static int MethodRef…

メソッドの引数の型違いでパフォーマンス計測 (3)

C#

前回メソッドの引数は object 型 > int 型 > ref int 型 で左に行くほど遅いと予想したので、雑に書いてみました。 以前の記事 rksoftware.hatenablog.com rksoftware.hatenablog.com 検証コード namespace ClassLibrary1; public static class MethodExtens…

メソッドの引数の型違いでパフォーマンス計測 (2)

C#

メソッドの引数の違いでのパフォーマンス計測をして見始めました。 rksoftware.hatenablog.com 計測には BenchmarkDotNet ( NuGet Gallery | BenchmarkDotNet 0.13.11 ) を使用してみました。 今回は、メソッドの定義上の引数の型でなく、実際に引数に渡す変…

C# のオーバーロードの確認 (継承の親子関係の型の引数)

C#

多くのプログラミング言語に、メソッドのオーバーロードという機能があります。当然 C# にもあります。 今回はそんなオーバーロードについて、そうだろうと思いつつ試していなかったことを試していきたいと思います。 ■ まずはオーバーロードとは メソッドの…

【オンライン】.NET Conf 後! C# Tokyo イベント で話をしてきました

【オンライン】.NET Conf 後! C# Tokyo イベント で話をしてきました。 csharp-tokyo.connpass.com スライドで話をするのは久しぶりかもしれません。 ■ 内容 C# Dev Kit の紹介と C# 12 の新機能の中であまり語られない印象のある機能の紹介でした。 www.do…

dotnet conf 2023 観たいセッションのメモ

世間は dotnet conf 2023 一色ですね! しかしジャパンのビジネスパーソンは忙しい……。 私も……。 セッション、98 もあるし。 ということでセッションタイトルと概要観て観たいセッションをメモ。 選定基準。 C# 12 は観る。 それを除いて新機能の紹介は切る(…

dotnet conf 2023 のめも (途中 v2)

dotnet conf 2023 のめも ついに待望の dotnet conf 2023 の時期がやってきました。しかし今回のセッション数、かなりの数が予告されています。正直全部は観きれない......。というわけで選択のための自分用メモを作っていきます。 ■ ブログ まずはブログ記…

C# Dev Kit がリリースされたので見ていきます 全部まとめ

C# Dev Kit がリリースされたので見ていこうと思います。 C# Dev Kit はこちら。 C# Dev Kit を確認した記事群がこちら。 C# Dev Kit がリリースされたので見ていきます その 1 - rksoftware C# Dev Kit がリリースされたので見ていきます その 2 - rksoftwa…

C# Dev Kit がリリースされたので見ていきます その 9

C# Dev Kit がリリースされたので見ていこうと思います。 C# Dev Kit はこちら。 前回の記事はこちら。 前後の記事の全部まとめはこちら。 https://rksoftware.hatenablog.com/entry/2023/10/21/140000 ■ ライセンスの設定 C# Dev Kit は Visual Studio のラ…

C# Dev Kit がリリースされたので見ていきます その 8

C# Dev Kit がリリースされたので見ていこうと思います。 C# Dev Kit はこちら。 前回の記事はこちら。 前後の記事の全部まとめはこちら。 https://rksoftware.hatenablog.com/entry/2023/10/21/140000 ■ コードの提案 IntelliCode という機能でよかったでし…

C# Dev Kit がリリースされたので見ていきます その 7

C# Dev Kit がリリースされたので見ていこうと思います。 C# Dev Kit はこちら。 前回の記事はこちら。 前後の記事の全部まとめはこちら。 https://rksoftware.hatenablog.com/entry/2023/10/21/140000 ■ コードの改善 今回は Visual Studio Code + C# Dev K…

C# Dev Kit がリリースされたので見ていきます その 6

C# Dev Kit がリリースされたので見ていこうと思います。 C# Dev Kit はこちら。 前回の記事はこちら。 前後の記事の全部まとめはこちら。 https://rksoftware.hatenablog.com/entry/2023/10/21/140000 ■ 前回の C# Dev Kit 前回までで、インストール、プロ…

C# Dev Kit がリリースされたので見ていきます その 5

C# Dev Kit がリリースされたので見ていこうと思います。 C# Dev Kit はこちら。 前回の記事はこちら。 前後の記事の全部まとめはこちら。 https://rksoftware.hatenablog.com/entry/2023/10/21/140000 ■ 前回の launch.json 前回 C# Dev Kit でプロジェクト…

C# Dev Kit がリリースされたので見ていきます その 4

C# Dev Kit がリリースされたので見ていこうと思います。 C# Dev Kit はこちら。 前回の記事はこちら。 前後の記事の全部まとめはこちら。 https://rksoftware.hatenablog.com/entry/2023/10/21/140000 ■ 前回 前回で、C# Dev Kit をインストールできました…

C# Dev Kit がリリースされたので見ていきます その 3

C# Dev Kit がリリースされたので見ていこうと思います。 C# Dev Kit はこちら。 前回の記事はこちら。 前後の記事の全部まとめはこちら。 https://rksoftware.hatenablog.com/entry/2023/10/21/140000 ■ 拡張機能のインストール 前回、Visual Studio Code …

C# Dev Kit がリリースされたので見ていきます その 2

C# Dev Kit がリリースされたので見ていこうと思います。 C# Dev Kit はこちら。 前回の記事はこちら。 前後の記事の全部まとめはこちら。 https://rksoftware.hatenablog.com/entry/2023/10/21/140000 ■ 拡張機能のアンストール C# Dev Kit をインストール…

C# Dev Kit がリリースされたので見ていきます その 1

C# Dev Kit がリリースされたので見ていこうと思います。 C# Dev Kit はこちら。 前後の記事の全部まとめはこちら。 https://rksoftware.hatenablog.com/entry/2023/10/21/140000 ■ まずは最初に 新しいものが出たらまず真っ先に確認することは何でしょう? …

WPF で OpenFolderDialog

皆さん .NET 8 使っていますか? 使っていますよね? 知っています。皆さん使っています。 ■ .NET 8 の WPF の新機能 OpenFolderDialog learn.microsoft.com learn.microsoft.com .NET 8 で WPF で OpenFolderDialog が使えるそうです。 皆さん WPF で OpenF…

RDP での WPF ハードウェア アクセラレーション

皆さん .NET 8 RC1 を使い始めていると思います。私も使い始めています。 そんな .NET 8 RC1 に気になる項目があります。「 RDP での WPF ハードウェア アクセラレーション 」です。 devblogs.microsoft.com これは、リモートデスクトップでアプリを使ってい…

C# 12 の新機能 まとめ

C#

そろそろ C# 12 の時期なので予習を始めなければなりません。 そこで一通り機能を確認してました。 参照情報 learn.microsoft.com プライマリ コンストラクター インスタンス コンストラクター - C# | Microsoft Learn クラスの型名の後ろに引数を書くとその…

C# 12 を試す .NET 8 RC1 編

C#

そろそろ C# 12 の時期なので予習を始めなければなりません。 今回は .NET 8 RC1 が出たので、その環境で C# 12 を書いてみます。 > dotnet --version 8.0.100-rc.1.23455.8 ちゃんと RC1 環境です。 プロジェクトを作っていきます。 > dotnet new console …

C# 12 の新機能の確認 一覧

そろそろ C# 12 の時期なので予習を始めなければなりません。 learn.microsoft.com というわけでいろいろやった記事のまとめです。 ■ 記事たち rksoftware.hatenablog.com rksoftware.hatenablog.com rksoftware.hatenablog.com rksoftware.hatenablog.com r…

C# 12 の新機能の確認 「 インターセプター 」

C#

そろそろ C# 12 の時期なので予習を始めなければなりません。 今回は 「 インターセプター 」 を確認してみましょう。 ■ インターセプター github.com C# 12 がまだプレビューだからという理由を超えて実験的機能という意味でのプレビュー機能。 メソッド呼…

C# 12 の新機能の確認 「 インライン配列 」

C#

そろそろ C# 12 の時期なので予習を始めなければなりません。 今回は 「 インライン配列 」 を確認してみましょう。 ■ インライン配列 learn.microsoft.com N 個の要素を持つ構造体を作れる。配列のように添え字アクセスできる。 配列と違って Linq が使えな…