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....@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@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 
<jg...@tokiomillennium.com<mailto:jg...@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 
postmas...@tokiomillennium.com<mailto:postmas...@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@python.org<mailto:PythonDotNet@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 
postmas...@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 mailing list - PythonDotNet@python.org
https://mail.python.org/mailman/listinfo/pythondotnet

Reply via email to