1. ホーム
  2. c#

[解決済み] 拡張機能のメリットについて教えてください。[終了しました]

2023-05-25 14:12:39

質問

C# の信者でない人が、拡張メソッドの目的は何なのかと尋ねてきました。私は、すでに定義されているオブジェクトに新しいメソッドを追加できること、特に、元のオブジェクトのソースを所有していない/制御していない場合にそうなることを説明しました。

彼は、「なぜ自分自身のクラスにメソッドを追加しないのか」という質問をしました。私の一般的な回答は、それはツールベルトの別のツールであり、彼の回答は、それはツールの役に立たない無駄であるというものです...しかし、私はより多くの"賢明な"答えを得ようと思いました。

自分のクラスに追加されたメソッドを使うことができなかった(あるいは使うべきではなかった)拡張メソッドを使用したシナリオは何でしょうか?

どのように解決するのですか?

基本的な型に拡張メソッドを追加すると、インテリセンスですぐに取得できるようになります。

私は、フォーマットプロバイダを ファイルサイズをフォーマットする . これを使うには、次のように書く必要があります。

Console.WriteLine(String.Format(new FileSizeFormatProvider(), "{0:fs}", fileSize));

自分が書ける拡張メソッドを作成する

Console.WriteLine(fileSize.ToFileSize());

よりきれいに、よりシンプルに。