[Mono-list] Embedded API: create System.Nullable<T>
jonathan at mugginsoft.com
jonathan at mugginsoft.com
Tue Oct 29 21:58:37 UTC 2013
On 24 Oct 2013, at 10:31, Robert Jordan <robertj at gmx.net> wrote:
> Jonathan,
>
> On 23.10.2013 17:37, jonathan at mugginsoft.com wrote:
>> What is the recommended way to create an instance of a nullable type, such as System.Nullable<int64>?
>>
>> I would prefer a method that used the embedded API as opposed to a C# helper method.
>>
>
> There is still no API for this, AFAIK, so you must resort to
> using System.Type.MakeGenericType().
>
It looks as if instantiating a System.Nullable<T> at runtime is not possible due to the distinct boxing behaviour of System.Nullable:
http://msdn.microsoft.com/en-US/library/ms228597(v=VS.80).ASPX
http://stackoverflow.com/questions/8691601/creating-a-nullable-object-via-activator-createinstance-returns-null
http://blogs.msdn.com/b/somasegar/archive/2005/08/11/450640.aspx
A boxed Nullable<T> consists of a boxed instance of the underlying type or a NULL pointer but NOT an instance of Nullable<T>.
I had thought, because of the above, that simply setting an int? as (MonoObject *)&intValue would work.
However, this doesn't seem to be the case. So more thought required on this.
Jonathan
More information about the Mono-list
mailing list