2016-04-14 3 views
1

する必要があります9プロパティの構造体を持っていると想像してください。参照型を返すプロパティ:このようなIEnumerableこれは構造体またはそれ以上のクラス(9値型プロパティと1参照値)

public IEnumerable<KeyValuePair<String, String>> Dostuff 
     { 
      get 
      { 
       //doing some operations in here 
       return _valueToReturn; 
      } 
     } 

ヒープ領域が必要になりますIEnumerableを使用して、実際に構造体がスタックに基づいているので、私の場合にはどうしますか?

ところで、構造体は不変です。

+2

あなたは気にしません。 CLRはあなたのためにこのすべてのものを処理します。 –

+0

可能な複製http://stackoverflow.com/questions/3942721/structs-versus-classes – HimBromBeere

+0

https://msdn.microsoft.com/en-us/library/ms229017(v=vs.110).aspx – Nahum

答えて

0

structとclassの選択方法を示すpageがあります。

structの中のフィールドの合計サイズが16バイト未満であれば、それを構造体として保持する方がクラスに変更するよりも優れています。プロパティの数は関係ありません。

0

あなたの場合は、タイプをclassと宣言してください。

わからない、またはわからない場合は、タイプをclassと定義します。

型がプリミティブ型の小さな集合である場合は、structがパフォーマンスを向上させる可能性があります。しかし、classを確実に使用しない限り、利益はリスクよりも小さくなります。

それでは、代表的なデータ、代表的なハードウェア、リリースモードでコンパイルされたものなどを使ってパフォーマンスを試してみるにはどうすればよいでしょう。

これを行わない場合は、classを使用してください。

関連する問題