Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法将ObjectParameter强制转换为Nullable DateTime?_C#_Datetime_Nullable - Fatal编程技术网

C# 无法将ObjectParameter强制转换为Nullable DateTime?

C# 无法将ObjectParameter强制转换为Nullable DateTime?,c#,datetime,nullable,C#,Datetime,Nullable,当我提供convertedDate作为类型为DateTime? 我可以知道转换的哪一部分是错误的,因为我得到了下面的例外情况吗 无法强制转换类型为“System.Data.Objects.ObjectParameter”的对象 要键入“System.IConvertible” 使用 我没有得到以下代码的错误。尝试使用下面的代码创建新项目。有时,当程序中发生异常而您没有异常处理程序(try/catch)时,代码会跳转,给出令人困惑的错误消息。在项目的其他地方可能会有例外 DateTime? con

当我提供
convertedDate
作为类型为
DateTime?

我可以知道转换的哪一部分是错误的,因为我得到了下面的例外情况吗

无法强制转换类型为“System.Data.Objects.ObjectParameter”的对象 要键入“System.IConvertible”

使用


我没有得到以下代码的错误。尝试使用下面的代码创建新项目。有时,当程序中发生异常而您没有异常处理程序(try/catch)时,代码会跳转,给出令人困惑的错误消息。在项目的其他地方可能会有例外

DateTime? convertedDate = OverDate.Value as DateTime?;

您的代码运行良好(.net 4.5)它能够生成,但在我提供
convertedDate
作为类型为
DateTime?
的输入参数时引发运行时异常。也许您应该选中
Nullable
?不,我的意思是它实际上可以运行。另外,
var cast=(IConvertible)过量。值在上述情况下起作用。因此,这个问题无法重现问题。我们既可以将框从
对象
向下转换为
IConvertible
,也可以取消装箱到
日期时间
,还可以取消装箱,然后包装到
日期时间?
。必须是(A)您忘记了
对象参数上的
.Value
,或者(B)您有一个
ObjectParameter
包装在另一个
ObjectParameter
@jdweng中:我有try/catch异常处理程序,它是catch部分,向我显示了我提到的错误。如果您在代码网络库的另一部分中没有异常句柄,则将跳转到代码中存在异常的另一部分异常处理程序。当异常发生时,网络库将向上移动执行堆栈,直到找到第一个异常处理程序。VS编译器在调用main()之前放置了一个异常处理程序,因此总是有一个默认的异常处理程序来防止蓝屏故障。在4.0上尝试过,它对我来说很好。试着在新项目中使用这两行代码,看看会发生什么。
DateTime? convertedDate = OverDate.Value as DateTime?;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//add reference for System.Data.Entity
using System.Data.Objects;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            var OverDate = new ObjectParameter("OverDate", (DateTime)DateTime.Now);
            DateTime? convertedDate = (DateTime?)OverDate.Value;
        }
    }
}
​