jad*_*son 2 .net types casting type-conversion
好,
问题有点简单.
我有一个对象定义为:
public class FullListObject : System.Collections.ArrayList, IPagedCollection
Run Code Online (Sandbox Code Playgroud)
当我尝试:
IPagedCollection pagedCollection = (IPagedCollection)value;
Run Code Online (Sandbox Code Playgroud)
它不起作用... value是一个FullListObject ...这是我的新代码试图解决"is"运算符的问题.当系统测试时,(value is IPagedCollection)它永远不会对FullListObject成真.
如何使用接口类型将对象转换为另一个对象?
编辑:
仅供记录:bugger代码
if (value is IPagedCollection)
{
IPagedCollection pagedCollection = value as IPagedCollection;
Run Code Online (Sandbox Code Playgroud)
if永远不会成真,并且迫使转换也不起作用.所以问题是类的双重定义.现在我在"Commom"项目中为整个系统使用的类定义了FullObjectList.问题消失了!
你说得对.试试这个(它也会失败,但显示问题):
IPagedCollection pagedCollection = (FullListObject)value;
Run Code Online (Sandbox Code Playgroud)
编译器应该接受这个就好了.如果没有,您有多个IPagedCollection和/或FullListObject相互冲突的定义.如果在运行时失败,则您的值不是a FullListObject.
| 归档时间: |
|
| 查看次数: |
306 次 |
| 最近记录: |