[解決済み] C#のメソッドの命名規則。ToSomething vs. AsSomething
2023-06-17 22:36:55
疑問点
ビジネスロジック・オブジェクトの拡張メソッドを書いているうちに、変換メソッドの名前を変更する問題に行き着きました。
someObject.ToAnotherObject()
は、広く使われている
object.ToString()
.
しかし、例えばLINQでは両方のバリアントが混在しており、両者の違いを見出すことができません。
ToDictionary()
,
ToList()
,
AsParallel()
,
AsQueryable()
, ...
この2つの命名規則の違いは何ですか?また、自分のクラスに使用するかどうかを決めるために知っておくべきことは何ですか?
どのように解決するのですか?
ToDictionary
そして
ToList
は接頭辞が
To
を付けるのは、必ずしも元のコレクションやそのプロパティの構造的な同一性が保たれるとは限らないからです。
-
を変換する
List<T>
をDictionary<K, V>
は全く新しい構造を持つコレクションを作成します。 -
を変換する
HashSet<T>
をList<T>
は、セットの一意性の特性を削除します。
で始まるメソッドは
As
で始まるメソッドはこれらのことを一切行いません。
ビュー
を提供するだけです。それはコレクションを豊かにするものです。
関連
-
[解決済み】C#で四捨五入する方法
-
[解決済み】C#におけるtypedefの等価性
-
[解決済み】"指定されたパスのフォーマットはサポートされていません。"
-
[解決済み】OnCollisionEnter2Dが実行されない?
-
[解決済み】C#のequal to演算子でtextとvarcharのデータ型は互換性がない
-
[解決済み】ファイルやアセンブリ、またはその依存関係の1つをロードできませんでした。
-
[解決済み】Nullableオブジェクトは値を持たなければならない?
-
[解決済み] Pythonの変数名や関数名の命名規則について教えてください。
-
[解決済み] C#の定数の命名規則?
-
[解決済み】コーディング規約 - 列挙型の命名法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 保護レベルによりアクセス不能になりました。
-
[解決済み】SmtpException: トランスポート接続からデータを読み取れません:net_io_connectionclosed
-
[解決済み】トランスポート接続からデータを読み取れない:既存の接続は、リモートホストによって強制的に閉じられました。
-
[解決済み】「namespace x already contains a definition for x」エラーの修正方法は?VS2010にコンバートした後に発生しました。
-
[解決済み】クロススレッド操作が有効でない。作成されたスレッド以外のスレッドからアクセスされたコントロール
-
[解決済み】取り消せないメンバはメソッドのように使えない?
-
[解決済み】値が期待した範囲に収まらない
-
[解決済み】Visual studio 2019がデバッグ時にフリーズする件
-
[解決済み】 C# 条件演算子エラー 代入、call、increment、decrement、await、new object 式のみ文として使用可能です。
-
[解決済み】URLから画像をダウンロードする方法