しばらくの間、リストまたは配列に複数の値を格納する必要があります。これらの値は、string、int、datetimeなどの複数のタイプです。
私には2つの選択肢があります:
オプション1:
次のようなオブジェクトのタイプで配列を宣言します。
object[] values;
オプション2:
インターフェイスの配列を宣言し、保持するタイプごとに独自のクラスを実装します。
interface IType
{
}
IType[] values;
class StringValue : IType
{
public string StringValue { get; set; } // not declared in interface!
}
class IntValue : IType
{
public int IntValue { get; set; } // not declared in interface!
}
質問:
各実装オプションのパフォーマンス上の利点や影響は何ですか?私が知る限り(または質問する)、boxinqはを使用するときに独自のパフォーマンスに影響を与えobject[]
ます。
オプション2はどうですか?少なくとも使用StringValue
またはIntValue
プロパティにはより多くのコードが必要です。最初のタイプを決定し、IType
StringValueまたはIntValueなどにキャストする必要があります。
使用するパフォーマンスに大きな影響があるのでobject[]
、オプション2のようなものを本当に考える必要がありますか?