« 2013年2月 | トップページ | 2013年5月 »

2013年4月の記事

2013年4月 7日 (日)

.NETの「primitive type」とは

.NETの System.Type.IsPrimitive というプロパティは、型が primitive type のとき true、そうでないとき false、ということになっている。その上で、.NET Framework Class Library のドキュメントには、

The primitive types are Boolean, Byte, SByte, Int16, UInt16, Int32, UInt32, Int64, UInt64, IntPtr, UIntPtr, Char, Double, and Single.

と書いてある。

他方、.NET Framwork 概要という解説の一部である .NET common type system というドキュメントには、(長い文の一部なのだが)

... all primitive data types (Boolean, Byte, Char, DateTime, Decimal, Double, Int16, Int32, Int64, SByte, Single, UInt16, UInt32, and UInt64) ...

と書いてあって、このカッコの中が primitive data type である、と言っているように見える。

ところが、よく見ると、上のリストと下のリストは、一致しないのですよ。

どちらも14個の型を示しているのだが、上のリストには IntPtr と UIntPtr が含まれているが下のリストにはなく、下のリストには DateTime と Decimal が含まれているが上のリストにはない。

これっていったい…。

※ もっとよく見ると、上のリストは primitive type という言葉を使っているが、下のリストは primitive data type となっている。ひょっとして、primitive type と primitive data type という異なる用語があるのだろうか。(まぎらわしいから、気をつけて使いわけてね、みたいな。coldsweats02

« 2013年2月 | トップページ | 2013年5月 »