2016-06-02 6 views
1

NumberDescription(仕事、家庭、セルなど)の2つのプロパティを持つPhoneタイプがあります。 classstructかどうかわかりません。 MSDNによれば`Phone`はC#のクラスか構造体ですか?

  • それは論理的にプリミティブ型と同様、単一の値、(INTを表す:タイプは、以下の特性の全てを有している場合を除き

    AVOIDの構造体を定義します,ダブルなど)。

  • インスタンスサイズが16バイト未満です。
  • 不変です。
  • 頻繁にボックスに入れる必要はありません。

私はそれが16以上のバイトではありません確信していますが、私はそれが他の要件を満たすことを確認していません。だから私は使うべきですか?

+0

"これは不変です。"あなたはクラスを使うべきです。 – Nasreddine

+3

個人的には、私はいつも 'class'を選択するようにしています。あなたが多くのフープを飛び越しているのを見たら、型が実際に 'struct'であるかどうかを検討してください。 –

+0

@Damien_The_Unbeliever答えに入れてください – Sipo

答えて

3

疑問がある場合はclassを使用してください。それはとにかくほとんどの場合にうまく機能します。 structは特別なケースです。あなたがヒットしたときにわかります。

+0

それは私がahahを持っていると考えている方法です:) IMOなので、クラスデザインのように見えますし、パラメータとして渡されたときに、構造体のコピーコンストラクタによってトラップされることになるでしょう!だから間違いなく、構造体が必要であることがわかっていなければ、オブジェクトをクラスとして定義してください! – Flo

+0

私はしばしば 'struct'から' class'に切り替えましたが、それ以外の方法は決してありませんでした。 –

関連する問題