IronPython True False

Python の True, False は変数みたいなものであるのは有名。
True が 1、False が 0 な整数という解釈でいいのかな。

>>>True + True
2
>>>True + False
1

まてよ、IronPython ではどうなのかな?
CTS により .NET の型にマッピングされなければいけないはずなんだが。

と思ったので少し試したけど整数等と同じ、つまり普段は Python の型である。
clr か System を import すると「どっちでもいい」オブジェクトに変身する。

>>>import System
>>>System.Boolean.Parse("true") == True
True
>>>True + True + True
3

又、変数?なので

>>> True = "abcde"
>>> True
'abcde'
>>> True + True
'abcdeabcde'
>>> System.Boolean.Parse("true") == True
False
>>> 2 == 2
True

真ならやはり True が戻ってくるけど中身は文字列というワケワカなことにも。
ま、普通は True や False に代入するはずがないから気にしなくてもいいんだが。

ついでに、どこかで null は IntPtr.Zero だとか見かけたけど

全然違う、None で大抵イケるはずだが None のマッピングは何だろう?