草庐IT

Implicit_cast

全部标签

c# - Entity Framework 4.1 : Unable to cast from DbQuery to ObjectQuery

我有以下代码:publicvoidDeleteAccountsForMonth(intyear,intmonth){varresult=fromacminthis._database.AccountsOnMonthwhere((acm.Year==year)&&(acm.Month==month))selectacm.Id;varquery=(ObjectQuery)result;stringsql=string.Format("DELETEFROM[AccountsOnMonth]WHERE[AccountsOnMonth].[Id]IN({0})",query.ToTraceStr

c# - 从 OracleDataAdapter.Fill() 填充 DataTable 时为 "Specified cast is not valid"

我似乎无法在Google(或StackOverflow)的任何地方找到这个问题,这真的让我感到惊讶,所以我把它放在这里以帮助处于相同情况的其他人。我有一个在OracleSqlDeveloper上运行良好的SQL查询,但是当我使用adapter.Fill(table)通过C#运行它以获取结果时,我得到Specifiedcastisnotvalid错误(System.InvalidCastException)。这是C#代码的精简版:varresultsTable=newDataTable();using(varadapter=newOracleDataAdapter(cmd)){varro

c# - 条件运算符? : with Nullable type Casting

在MSDN文档中,以下两个片段是相同的:boolvalue;intx=(value)?0:1;和boolvalue;intx;if(value)x=0;elsex=1;太棒了,太棒了。我用它所有的时间。简洁有效。如果我们尝试使用可空类型,如下所示:int?x=(value.HasValue)?value.Value:null;我们得到一个编译时错误:Thetypeofconditionalexpressioncannotbedeterminedbecausethereisnoimplicitconversionbetween'{NullableType}'andnull.这编译得很好:

c# - 无法转换类型 : why is it necesssary to cast twice?

鉴于这个高度简化的例子:abstractclassAnimal{}classDog:Animal{publicvoidBark(){}}classCat:Animal{publicvoidMew(){}}classSoundRecorderwhereT:Animal{privatereadonlyT_animal;publicSoundRecorder(Tanimal){_animal=animal;}publicvoidRecordSound(stringfact){if(this._animalisDog){((Dog)this._animal).Bark();//Compiler

c# - .NET : Unable to cast object to interface it implements

我有一个类(TabControlH60),它既继承自基类(UserControl)又实现了一个接口(interface)(IFrameworkClient)。我使用.NETActivator类实例化该对象。使用返回的实例,我可以转换为UserControl基类,但不能转换为接口(interface)。我得到的异常在代码片段下方。如何转换到界面?objectobj=Activator.CreateInstance(objType);Type[]interfaces=obj.GetType().GetInterfaces();//containsIFrameworkClientm_Clie

c# - 为什么 OfType<> 比 Cast<> 快?

回答以下问题:HowtoconvertMatchCollectiontostringarray给定两个Linq表达式:vararr=Regex.Matches(strText,@"\b[A-Za-z-']+\b").OfType()//OfType.Select(m=>m.Groups[0].Value).ToArray();和vararr=Regex.Matches(strText,@"\b[A-Za-z-']+\b").Cast()//Cast.Select(m=>m.Groups[0].Value).ToArray();OfType由用户Alex进行了基准测试稍微快一点(并由我自

c# - 为什么这个 Linq Cast 在使用 ToList 时会失败?

考虑这个人为的、微不足道的例子:varfoo=newbyte[]{246,127};varbar=foo.Cast();varbaz=newList();foreach(varsbinbar){baz.Add(sb);}foreach(varsbinbaz){Console.WriteLine(sb);}借助二进制补码的魔力,-10和127被打印到控制台。到目前为止,一切都很好。眼尖的人会看到我正在迭代一个可枚举并将其添加到列表中。这听起来像ToList:varfoo=newbyte[]{246,127};varbar=foo.Cast();varbaz=bar.ToList();//

c# - .Cast 优于 .Select 有什么好处?

我有一个带有隐式转换运算符到大多数基本类型的类型,并尝试使用.Cast()在这种类型的集合上,失败了。当我深入研究它时,我注意到通过as类型转换不使用隐式或显式转换,只是不会编译,所以我想这就是.Cast的地方摔倒。所以这失败了varenumerable=source.Cast();但这行得通varenumerable=source.Select(x=>(string)x);那么Cast有什么好处呢?当然,它短了几个字符,但似乎更受限制。如果可以用来转换,除了语法更紧凑之外还有什么好处吗? 最佳答案 转换用法Cast的好处|当您的收

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

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

c# - 在 C#/VB.NET 中解码 T-SQL CAST

最近我们的网站被Asproxbotnet的卷土重来所淹没SQLinjection攻击。无需详细说明,攻击会尝试通过对T-SQL进行编码来执行SQL代码。ASCII编码的二进制字符串中的命令。它看起来像这样:DECLARE%20@S%20NVARCHAR(4000);SET%20@S=CAST(0x44004500...06F007200%20AS%20NVARCHAR(4000));EXEC(@S);--我能够用SQL对此进行解码,但我对此有点谨慎,因为我当时并不知道到底发生了什么。我试着写了一个简单的解码工具,这样我就可以在不触及SQL Server的情况下解码这种类型的文本。.我需