'objType'未被定义...... 事实上,它是的,那么为什么会发生这种情况?
正如您在下面的这张照片中看到的那样,由于某种原因,我的直播无法进行,除了第二个参数的任何内容.它说它需要一种类型,但是,它根本不会采用任何对象! 感谢您的帮助!我正在使用vb.net,所以所有.NET答案都是可以接受的:) 编辑 好吧,显然我不是给它正确的type.有人可以澄清一下吗?假设它需要施放的类型为gridElement,我应该用? 替换objtype 解决方案 DirectCast需要一个对象原型(即仅授予其预期的类名称),而不是System.Type描述符对象.要使用System.Type施放对象,您将需要使用 ctynanicicicicicagymanicagianicagy an (): Return CTypeDynamic(createElementByIdAndLayer.MemberwiseClone(), objType) 错误本质上告诉您一个类型名称" ObjType"的类. 其他解决方案 它的期望是"类型",而不是
48 2023-11-14
编程技术问答社区
C#相当于VB.NET的DirectCast。
c#是否等同于vb.net的直接播? 我知道它具有()casts和'as'关键字,但是与CTYPE和TRYCAST保持一致. 要清楚,这些关键字执行以下操作; ctype/()casts :如果它已经是正确的类型,请施放它,否则要寻找类型的转换器并调用它.如果找不到类型的转换器,请扔一个无效的castexception. trycast/" as"关键字:如果它是正确的类型,请施放,否则返回null. directcast :如果它是正确的类型,请施放它,否则扔一个无效的castexception. 我拼出了上述内容后,有些人仍然回答说()是等效的,所以我将进一步扩展为什么这不是真的. Directcast仅允许在继承树上缩小或扩大转换.它不支持(例如),即: ,不支持不同分支的转换. c# - 汇编并运行: //This code uses a type converter to go across an inheritance tr
10 2023-11-14
编程技术问答社区
用DirectCast, CType, TryCast铸造数据类型
自2005年我从vb6搬到vb.net以来,我一直在使用ctype将一种数据类型铸造到另一种数据类型.我这样做是因为它的键入速度更快,曾经存在于VB6中,我不知道为什么如果它们之间没有区别,我必须使用Directcast. 我偶尔使用trycast,因为我知道有时会铸造会失败.但是,我无法获得CTYPE和Directcast之间的区别. 谁能告诉我简单的简单英语的区别,两者(CTYPE和Directcast)有什么区别?添加示例说明在哪里使用的示例. 解决方案 Trycast和Directcast是直接映射到CLR铸造的支持的铸造操作员.他们可以快速将基本类型的对象施加到派生类型或拆开值类型的值.直接播放不可能的情况下会引发异常,如果失败,则Trycast不会返回.您通常想偏爱Directcast来捕获编程错误. ctype允许超级转换,这是CLR皱眉的转换.我能想到的最好的例子是将字符串转换为数字或日期.例如: Dim obj As Object obj
2 2023-11-14
编程技术问答社区
VB.NET中DirectCast()和CType()的区别
我是经验丰富的C ++/C#程序员,刚刚进入VB.NET.我通常使用CTYPE(和CINT,CBOOL,CSTR)进行演员表,因为它的角色较少,并且是我接触的第一种铸造方式,但我也知道Directcast和Trycast. 简单地说,直接播放和CTYPE之间是否存在任何差异(铸件,性能等)?我了解trycast的想法. 解决方案 要注意的第一件事是VB.NET没有直接类似于C#'S (type)instance铸造机构.我提出这个问题是因为它可以作为比较两个vb.net操作员的起点和常见参考(即使它们具有功能语义). DirectCast() 比C#铸造操作员更严格.它仅允许您施放的项目是您正在施放的类型.我相信它仍然会删除价值类型,但否则它不会进行任何转换.因此,例如,您无法从short到int,就像使用C#(int)铸件一样.但是,如果您的基础IEnumerable对象变量确实是Array,则可以从IEnumerable施放到数组.当然,您可以从Object到任何
6 2023-11-14
编程技术问答社区
C#相当于VB.Net的DirectCast?
这可能以前有人问过,但如果有,我找不到.C# 是否与 VB.Net 的 DirectCast 等效?我知道它有 () 强制转换和 'as' 关键字,但它们与 CType 和 TryCast 一致. 明确地说,这些关键字执行以下操作; CType/() 转换:如果它已经是正确的类型,则转换它,否则寻找类型转换器并调用它.如果没有找到类型转换器,则抛出 InvalidCastException. TryCast/“as"关键字:如果是正确的类型,则强制转换,否则返回null. DirectCast:如果是正确的类型,则进行强制转换,否则抛出 InvalidCastException. 编辑:在我阐明了以上内容之后,仍然有人回应说 () 是等价的,所以我将进一步解释为什么这是不正确的. DirectCast 只允许在继承树上进行 Narrowing 或 Widening 转换,它不支持像 () 那样跨不同分支的转换,即: C#,编译并运行: //Th
1248 2022-07-19
编程技术问答社区