int、stringなどの単純な型は、ValueTypesまたはRefrenceTypesであることがわかりやすいです。しかし、私は区別するための方法があることを知りたいですか?タイプがValueTypeかRefereceTypeかを区別するにはどうすればよいですか?
答えて
すべての構造体、列挙型およびネイティブ型は値型です。
実行時に、あなたは次のようにチェックすることができます完全にあなたの言語/ランタイムに依存
Type type = typeof(TypeName);
if (type.IsValueType)
{
//...
}
.net世界でのみ。 –
非常に良い点:-) –
文字列は値型ではありません。ここで
は、最も一般的に使用さvalue typesのリストです:
- ブール値(可能System.Boolean)
- バイト(System.Byte)
- CHAR(のSystem.Char)
- 進( System.Decimal)
- double(System.Double)
- float(System.Single)
- INT(可能System.Int32)
- 長い(System.Int64)
- sbyte(System.SByte)
- 短い(のSystem.Int16)
- UINT(可能System.UInt32)
- ULONG(システム。これらのほかに可能System.DateTime
UInt64型)
- 列挙
- すべての他のタイプは、参照型である構造体
である任意のタイプである任意の種類は。
コメントを読んで、DateTimeは値の種類です。それはどういう意味ですか? DateTime dt = new DateTime ありがとう – odiseh
特定の型にリテラルがあるかどうかは、値/参照型を混同していると思います。文字列には初期化に使用できる文字列リテラルがありますが、値型ではありません。 DateTimeにはリテラルはありませんが、値型です。つまり、関数にパラメータとしてDateTimeを渡すか、DateTime datetime1 = datetime2と書くと、両方のdatetimeが同じオブジェクトを参照するのではなく、実際に値がコピーされます。 –
タルの話はまったく正しい。リテラルを取得するかしないかの選択は、完全に言語に依存します。値タイプではないものは、CLI自体によって定義されます。例えば、VBはDateTimeリテラルを持っています。リストやハッシュリテラル(boo、IronPython、IronRuby)を持つこともできますが、それらは依然として参照型です。 –
- 1. Firefoxのタブを区別するにはどうすればよいですか?
- 2. 投稿フォームを区別するにはどうすればいいですか?
- 3. USBシリアルコンバータを区別するにはどうすればいいですか?
- 4. これらのタイプはどのように区別されますか?
- 5. SubActivityからアンドロイドアクティビティをプログラム的に区別するにはどうすればよいですか?
- 6. valueType-pathTypeでObjectAnimatorをプログラムで作成するにはどうすればよいですか?
- 7. フィールドの消去されていないタイプを判別するにはどうすればよいですか?
- 8. ファイルシステムで大文字と小文字が区別されるかどうかを検出するにはどうすればよいですか?
- 9. Sortedコレクション内の2つの等しいオブジェクトを区別するにはどうすればよいですか?
- 10. WIXで通常のインストールとアップグレードを区別するにはどうすればよいですか?
- 11. Fortranで「スタック」メモリとダイナミックメモリを区別するにはどうすればよいですか?
- 12. iTunes Connect/Apple TestFlightでSTAGEビルドとPRODUCTIONビルドを区別するにはどうすればよいですか?
- 13. IOSでGRPSと3Gを区別するにはどうすればよいですか?
- 14. JavaScriptで変数の型を区別するにはどうすればよいですか?
- 15. javascriptでplus/equalsとequalsキーを区別するにはどうすればよいですか?
- 16. Androidで音声通話とビデオ通話を区別するにはどうすればよいですか?
- 17. 複数の列に沿って個数を区別するにはどうすればよいですか?
- 18. どのようなアクションがリストボックスメニューに実装されたかを区別するにはどうすればいいですか?
- 19. テンプレートパラメータのタイプを確認するにはどうすればよいですか?
- 20. DataGridViewCellのタイプをテストするにはどうすればよいですか?
- 21. オブジェクトのタイプを確認するにはどうすればよいですか?
- 22. スカラーコンパイラは、あるタイプを他のタイプから推測させるにはどうすればよいですか?
- 23. RTateを使用してTDateTimeプロパティとDoubleプロパティを区別するにはどうすればよいですか?
- 24. 類似のパターンURLを区別するにはどうすればよいですか?
- 25. ホイールボタンのクリックイベントとマウスのプレスイベントを区別するにはどうすればよいですか?
- 26. 重複したCookieを区別するにはどうすればよいですか?
- 27. 単体テストと統合テストを区別するにはどうすればよいですか?
- 28. RenderActionのリクエストとAJAXのリクエストを区別するにはどうすればよいですか?
- 29. ユーザ定義/ライブラリ関数とコンパイル済みファイルを区別するにはどうすればよいですか?
- 30. さまざまな種類の例外を区別するにはどうすればよいですか?
を。 –
よく気づいた。私はこれが.NET/C#の質問であると仮定します。私は正しい? –
@ Martinho:そうだね。 – odiseh