[解決済み] 私のC#コードで.NET 4.0タプルを使用することは、設計上の悪い判断でしょうか?
2022-04-22 09:53:25
質問
を追加したことで タプル クラスは、私のデザインに使用することが悪い選択であるかどうかを決定するために、.net 4で試行錯誤しています。 私が考えるに タプル は、結果クラスを書くための近道になります(他の使い方もあると思います)。
だから、これ。
public class ResultType
{
public string StringValue { get; set; }
public int IntValue { get; set; }
}
public ResultType GetAClassedValue()
{
//..Do Some Stuff
ResultType result = new ResultType { StringValue = "A String", IntValue = 2 };
return result;
}
と同等です。
public Tuple<string, int> GetATupledValue()
{
//...Do Some stuff
Tuple<string, int> result = new Tuple<string, int>("A String", 2);
return result;
}
ということは、私がタプルの本質を見逃している可能性はさておき、この例では
タプル
デザイン的にまずいのか? 私には、ごちゃごちゃしていないように見えますが、自己文書化されていないようで、すっきりしていません。 というのは
ResultType
そのため、クラスの各パーツが何を意味するかは後で非常に明確になりますが、メンテナンスのために余分なコードが発生します。 しかし
Tuple<string, int>
が何を意味するのか調べてみる必要があります。
Item
を表しますが、書くコードとメンテナンスするコードが少なくなります。
この選択について、何かご経験があれば、ぜひ教えてください。
解決方法は?
タプルは、その作成と使用の両方をコントロールできれば、素晴らしいものです。
しかし、パブリックAPIでは、あまり効果的ではありません。消費者(あなたではない)は推測するか、ドキュメントを調べなければならない。
Tuple<int, int>
.
私なら、プライベート/内部メンバーにはそれらを使用し、パブリック/保護されたメンバーには結果クラスを使用します。
この回答 にも情報があります。
関連
-
[解決済み】ASP.NET Core Dependency Injectionのエラーです。アクティブ化しようとしているときに、タイプのサービスを解決できません。
-
[解決済み】Visual studio 2019がデバッグ時にフリーズする件
-
[解決済み】"指定されたパスのフォーマットはサポートされていません。"
-
[解決済み] C#を使用して.NETで現在のユーザー名を取得する方法は?
-
[解決済み] .NETを使用して16進数のカラーコードから色を取得するには?
-
[解決済み] .NET 4.0 プロジェクトで .NET 2.0 混合モード アセンブリを参照するために必要な「追加設定」は何ですか?
-
[解決済み] .NETでコンソールアプリケーションの終了コードを指定するにはどうすればよいですか?
-
[解決済み] Microsoft .NET 4.0 full FrameworkとClient Profileの違いについて
-
[解決済み] xsdから.NET 4.0クラスを生成する方法は?
-
[解決済み】C# 6.0は.NET 4.0に対応しますか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】統合マネージドパイプラインモードで適用されないASP.NETの設定が検出された
-
解決済み] Critical error detected c0000374 - C++ dll returns pointer off allocated memory to C# [解決済み] Critical error detected c0000374 - C++ dll returns pointer off allocated memory to C#.
-
[解決済み] 'SubSonic.Schema .DatabaseColumn' 型のオブジェクトをシリアライズする際に、循環参照が検出されました。
-
[解決済み】ファイルへの読み書きの際に共有違反のIOExceptionが発生する C#
-
[解決済み】 C# 条件演算子エラー 代入、call、increment、decrement、await、new object 式のみ文として使用可能です。
-
[解決済み】URLから画像をダウンロードする方法
-
[解決済み】Unityでゲームオブジェクトのすべての子をループスルーして破壊する方法?
-
[解決済み】画像のペイントにTextureBrushを使用する方法
-
[解決済み】プロセスが実行されているかどうかを知るには?
-
[解決済み】ユーザー設定値を別のユーザー設定値で設定する