SimonZ <si*********@studio-moderna.com> wrote:
can someone explain me, when to use:
(DateTime)DataBinder.Eval(Container.DataItem, "dateField")
OR
Convert.ToDateTime(DataBinder.Eval(Container.DataI tem, "dateField"))
Sometimes (DateTime) works sometimes not, on the other hand
Convert.ToDateTime() always works.
The same problem is with (int16) and Convert.ToInt16
When you cast, the runtime type of the object must be exactly correct
(leaving conversion operators aside for the moment as they're not
relevant in your example).
When you use Convert.ToDateTime(object), the object just has to be of
some type which implements IConvertible and does the appropriate thing
with IConvertible.ToDateTime.
In other words, it depends what DataBinder.Eval actually returns. If it
returns a string, for instance, Convert.ToDateTime will work (because
System.String implements IConvertible and tries to parse the string as
a date/time) but casting won't.
Does that help?
--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet Blog:
http://www.msmvps.com/jon.skeet
If replying to the group, please do not mail me too