jjzjj

InvalidCastException

全部标签

c# - Foreach 可以抛出 InvalidCastException 吗?

想象一下下面的代码:classforeach_convert{publicstaticvoidmethod2(){Listx=newList();x.Add(5);foreach(stringsinx){//InvalidCastExceptioninruntime}}}我想知道,为什么这个foreach行为如此……不像C#?这里发生的是对子类的隐式转换,这很容易出错,而且似乎在该语言的所有其他地方都被禁止。还是我说的不对?附言我问的原因是我在我的项目中的类似代码中有一个错误,我曾经在其中迭代来自外部库的自定义集合,它被称为SomeTypeCollection,但实际上提供了基本类型项

c# - Foreach 可以抛出 InvalidCastException 吗?

想象一下下面的代码:classforeach_convert{publicstaticvoidmethod2(){Listx=newList();x.Add(5);foreach(stringsinx){//InvalidCastExceptioninruntime}}}我想知道,为什么这个foreach行为如此……不像C#?这里发生的是对子类的隐式转换,这很容易出错,而且似乎在该语言的所有其他地方都被禁止。还是我说的不对?附言我问的原因是我在我的项目中的类似代码中有一个错误,我曾经在其中迭代来自外部库的自定义集合,它被称为SomeTypeCollection,但实际上提供了基本类型项

c# - 为什么 Enumerable.Cast 引发 InvalidCastException?

如果我可以隐式地将整数值转换为double值,例如:inta=4;doubleb=a;//nowbholds4.0为什么我不能这样做:int[]intNumbers={10,6,1,9};double[]doubleNumbers2=intNumbers.Cast().ToArray();我收到“指定的转换无效”InvalidCastException异常。相反的操作(从double转换为int)会导致相同的错误。我做错了什么? 最佳答案 好吧,您对Cast的期望不正确,仅此而已-它旨在处理装箱/拆箱、引用和身份转换,仅此而已。不幸

c# - 为什么 Enumerable.Cast 引发 InvalidCastException?

如果我可以隐式地将整数值转换为double值,例如:inta=4;doubleb=a;//nowbholds4.0为什么我不能这样做:int[]intNumbers={10,6,1,9};double[]doubleNumbers2=intNumbers.Cast().ToArray();我收到“指定的转换无效”InvalidCastException异常。相反的操作(从double转换为int)会导致相同的错误。我做错了什么? 最佳答案 好吧,您对Cast的期望不正确,仅此而已-它旨在处理装箱/拆箱、引用和身份转换,仅此而已。不幸

c# - InvalidCastException : Unable To Cast Objects of type [base] to type [subclass]

我有一个继承自MembershipUser的自定义CustomMembershipUser。publicclassConfigMembershipUser:MembershipUser{//customstuff}我正在使用Linq-to-SQL从数据库中读取并获取用户实体;为了使此功能成为MembershipUser,我定义了一个显式转换:publicstaticexplicitoperatorMembershipUser(Useruser){DateTimenow=DateTime.Now;if(user==null)returnnull;returnnewMembershipUs

c# - 对象在转换为接口(interface)时必须实现 IConvertible (InvalidCastException)

我正在尝试将某种类型的对象转换为它使用Convert.ChangeType()实现的接口(interface),但是InvalidCastException被抛出是因为对象必须实现IConvertible。类型:publicIDocumentSet:IQueryable{}publicIDocumentSet:IDocumentSet,IQueryable{}publicXmlDocumentSet:IDocumentSet{}错误发生的代码摘录:privatereadonlyConcurrentDictionary_openDocumentSets=newConcurrentDict

c# - LinqKit System.InvalidCastException 在成员属性上调用方法提供的表达式时

给定一个简单的父/子类结构。我想使用linqkit在父项上应用子lambda表达式。我还希望通过实用方法提供Lambda表达式。publicclassFoo{publicBarBar{get;set;}}publicclassBar{publicstringValue{get;set;}publicstaticExpression>GetLambdaX(){returnc=>c.Value=="A";}}...Expression>lx=c=>Bar.GetLambdaX().Invoke(c.Bar);Console.WriteLine(lx.Expand());上面的代码抛出Sys

c# - 两个相同类型的对象的 InvalidCastException

我有一个我自己无法解决的奇怪问题。我的mvp项目模型中设计为单例的类导致InvalidCastException。错误源位于以下代码行中,其中将反序列化对象分配给类的实例变量:engineObject=(ENGINE)xSerializer.Deserialize(str);。每当我尝试将我的一个UserControls添加到表单或不同的UC时,它就会发生。我所有的UC都有一个特殊的表示器,可以访问上面提到的单例类的实例变量。这是我在某处尝试添加UC时得到的结果:'System.TypeInitializationException:Thetypeinitializerfor'MVP.

c# - NHibernate 查询只运行一次,然后抛出 InvalidCastException

我有一个简单的查询如下:varemployeeTeam=Session.Query().Where(x=>x.StartEffective.OrderByDescending(x=>x.StartEffective).Select(x=>new{x.EmployeeId,x.StartEffective,x.Team}).ToList();它成功运行了一次,但是在第二次执行时(或第三次、第四次等等)它抛出了一个无效的转换异常,例如:FatalError:System.InvalidCastException:Cannotconverttype'System.Linq.Enumerabl

c# - 令人费解的 Enumerable.Cast InvalidCastException

以下抛出一个InvalidCastException。IEnumerablelist=newList(){1};IEnumerablecastedList=list.Cast();Console.WriteLine(castedList.First());为什么?我使用的是VisualStudio2008SP1。 最佳答案 这很奇怪!有一篇博文here描述了Cast()的行为在.NET3.5和.NET3.5SP1之间发生了变化,但它仍然没有解释InvalidCastException,如果您这样重写代码,您甚至会得到:varlist