none
碰到个棘手的Silverlight问题 RRS feed

  • 问题

  • 碰到个棘手的问题,.net下都没有问题,用Silverlight就不行,很简单的几句代码~~


    public class Class1
        {
        }


        public class Class4<T> where T : Class1
        {
            IEnumerable<Class1> Clist
            {
                get
                {
                    IList<T> list = new List<T>();
                    return list;
                }
            }
        }


    return的list处报错,不能隐式的将IList<T>转换成IEnumerable<Class1>,重点是不能将<T>转换成<Class1>

    2011年2月23日 6:01

答案

  • 这是.net 和 silverlight 一个不一致的行为,我也不了解原由。若你希望返回类型是IEnumerable<Class1>的话,你也可以在中 get 中显式转换一下返回类型

        public class Class4<T> where T : Class1
        {
            IEnumerable<Class1> Clist
            {
                get
                {
                    IList<T> list = new List<T>();
                    return (IEnumerable < Class1 > )list;
                }
            }
        }


    Mog Liang
    Please mark the replies as answers if they help or unmark if not.
    If you have any feedback about my replies, please contact msdnmg@microsoft.com.
    Microsoft One Code Framework
    2011年2月28日 1:45

全部回复

  •  吧IEnumerable<Class1>改成IEnumerable<T>应该就好了

         public class Class4<T> where T : Class1
        {
            IEnumerable<T> Clist
            {
                get
                {
                    IList<T> list = new List<T>();
                    return list;
                }
            }
        }


    Mog Liang
    Please mark the replies as answers if they help or unmark if not.
    If you have any feedback about my replies, please contact msdnmg@microsoft.com.
    Microsoft One Code Framework
    2011年2月24日 9:39
  • 改成T了是可以,不过为什么不可以用Class1呢?

    2011年2月27日 2:23
  • 这是.net 和 silverlight 一个不一致的行为,我也不了解原由。若你希望返回类型是IEnumerable<Class1>的话,你也可以在中 get 中显式转换一下返回类型

        public class Class4<T> where T : Class1
        {
            IEnumerable<Class1> Clist
            {
                get
                {
                    IList<T> list = new List<T>();
                    return (IEnumerable < Class1 > )list;
                }
            }
        }


    Mog Liang
    Please mark the replies as answers if they help or unmark if not.
    If you have any feedback about my replies, please contact msdnmg@microsoft.com.
    Microsoft One Code Framework
    2011年2月28日 1:45