当前位置:  开发笔记 > 编程语言 > 正文

IList.Cast <typeof(T)>()返回错误,语法看起来不错

如何解决《IList.Cast<typeof(T)>()返回错误,语法看起来不错》经验,为你挑选了2个好方法。

T不是类型也不是System.Type. T是一个类型参数. typeof(T)返回类型T.该typeof运营商不采取行动的对象上,它返回Type一个类型的对象.http://msdn.microsoft.com/en-us/library/58918ffs.aspx

@John回答你的直接问题是正确的.但是NHibernate的代码有点偏差.例如,你不应该ISessionFactory 获得之后进行配置ISession.

public static T[] LoadObjectListAll()
{
    var session = GetNewSession();
    var criteria = session.CreateCriteria(typeof(T));
    var results = criteria.List();
    return results.ToArray();        
}


jfs.. 5

我认为

var castList = list.Cast();

应该

var castList = list.Cast();

@Jon Limjap我能看到的最明显的错误IList是a绝对不同于IList.A IList是非通用的(例如ArrayList).

最初的问题已经在使用了IList.有人编辑格式时删除了它.可能是Markdown的一个问题.

现在修复了.



1> Matt Hinze..:

T不是类型也不是System.Type. T是一个类型参数. typeof(T)返回类型T.该typeof运营商不采取行动的对象上,它返回Type一个类型的对象.http://msdn.microsoft.com/en-us/library/58918ffs.aspx

@John回答你的直接问题是正确的.但是NHibernate的代码有点偏差.例如,你不应该ISessionFactory 获得之后进行配置ISession.

public static T[] LoadObjectListAll()
{
    var session = GetNewSession();
    var criteria = session.CreateCriteria(typeof(T));
    var results = criteria.List();
    return results.ToArray();        
}



2> jfs..:

我认为

var castList = list.Cast();

应该

var castList = list.Cast();

@Jon Limjap我能看到的最明显的错误IList是a绝对不同于IList.A IList是非通用的(例如ArrayList).

最初的问题已经在使用了IList.有人编辑格式时删除了它.可能是Markdown的一个问题.

现在修复了.

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有