[Python.NET] Passing in null as the value for a nullable type.

John Gill jgill at tokiomillennium.com
Wed Feb 5 20:59:45 CET 2014


Thanks Brad.

I think I understand what is happening now.   Note that the C# code I posted works fine, you can pass in Null as mydate.

DateTime? mydate

Gets translated by the C# compiler to System.Nullable<DateTime> mydate.

When you pass in null to the method C# sets up a Nullable<DateTime> with the HasValue set to False.

As far as I can tell there is no way to create such a thing in pythondotnet.   Not sure whether this is a bug or a feature, but certainly explains why it is dazed and confused when I try to pass in None, it isn’t prepared to match the DateTime?.

In this case, I have control of the C# code so I can just overload the method and work around this.

Thanks for helping me understand what is going on.

John

From: PythonDotNet [mailto:pythondotnet-bounces+jgill=tokiomillennium.com at python.org] On Behalf Of Brad Friedman
Sent: Wednesday, February 05, 2014 2:43 PM
To: A list for users and developers of Python for .NET
Cc: pythondotnet at python.org
Subject: Re: [Python.NET] Passing in null as the value for a nullable type.

DateTime is a struct. You have to pass a value. It should not take null.  If you tried to do that in c# it would not allow it either.

On Feb 5, 2014, at 11:46 AM, John Gill <jgill at tokiomillennium.com<mailto:jgill at tokiomillennium.com>> wrote:
I am sure there is a really simple answer to this one… but so far it is eluding me.

I have a class something like this:

public class Foo
{
  …
    public int process_date(DateTime? mydate)
   {
      …
   }
}


I want to call this from python using pythondotnet.


Calling it like this works fine:

     mydate = DateTime(0)
     Foo().process_date(mydate)

But if I try to pass in a null as the date as follows:

    Foo().process_date(None)

I get:

   TypeError: No method matches given arguments

Hoping there is something really obvious I am missing here.

John
This communication and any attachments contain information which is confidential and may also be legally privileged. It is for the exclusive use of the intended recipient(s). If you are not the intended recipient(s) please note that any form of disclosure, distribution, copying, printing or use of this communication or the information in it or in any attachments is strictly prohibited and may be unlawful. If you have received this communication in error, please return it with the title "received in error" to postmaster at tokiomillennium.com<mailto:postmaster at tokiomillennium.com> and then permanently delete the email and any attachments from your system.


E-mail communications cannot be guaranteed to be secure or error free, as information could be intercepted, corrupted, amended, lost, destroyed, arrive late or incomplete, or contain viruses. It is the recipient's responsibility to ensure that e-mail transmissions and any attachments are virus free. We do not accept liability for any damages or other consequences caused by information that is intercepted, corrupted, amended, lost, destroyed, arrives late or incomplete or contains viruses.
******************************************
_________________________________________________
Python.NET<http://Python.NET> mailing list - PythonDotNet at python.org<mailto:PythonDotNet at python.org>
https://mail.python.org/mailman/listinfo/pythondotnet

This communication and any attachments contain information which is confidential and may also be legally privileged. It is for the exclusive use of the intended recipient(s). If you are not the intended recipient(s) please note that any form of disclosure, distribution, copying, printing or use of this communication or the information in it or in any attachments is strictly prohibited and may be unlawful. If you have received this communication in error, please return it with the title "received in error" to postmaster at tokiomillennium.com and then permanently delete the email and any attachments from your system.

E-mail communications cannot be guaranteed to be secure or error free, as information could be intercepted, corrupted, amended, lost, destroyed, arrive late or incomplete, or contain viruses. It is the recipient's responsibility to ensure that e-mail transmissions and any attachments are virus free. We do not accept liability for any damages or other consequences caused by information that is intercepted, corrupted, amended, lost, destroyed, arrives late or incomplete or contains viruses.
******************************************

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/pythondotnet/attachments/20140205/ce502354/attachment.html>


More information about the PythonDotNet mailing list