我实现了如下类,但是我发现它可以被强制转化成IEnumerable接口。
我不明白IEnumerable在什么时候被实现了。谢谢:)代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections.Generic;
using System.Collections;/// <summary>
/// MyProduct 的摘要说明
/// </summary>
public class MyProduct
{
    private string _productName = string.Empty;
    private string _productPrice = string.Empty;    public string ProductName
    {
        get { return (_productName); }
        set { _productName = value; }
    }    public string ProductPrice
    {
        get { return (_productPrice); }
        set { _productPrice = value; }
    }    public IList<MyProduct> GetOneSampleProducts()
    {
        IList<MyProduct> mySampleProducts = new List<MyProduct>(3);        MyProduct myProduct = new MyProduct();
        IEnumerable myEnum = (IEnumerable)myProduct;      //这里强制转换是成功的;
        myProduct.ProductName = "奶酪";
        myProduct.ProductPrice = "$1.39";
        mySampleProducts.Add(myProduct);        return (mySampleProducts);
    }
}

解决方案 »

  1.   

    不会吧,应该只是编译通过,如果你调用这个public IList<MyProduct> GetOneSampleProducts()
    时应该是会报错的出现
    无法将类型为“MyProduct”的对象强制转换为类型“System.Collections.IEnumerable”。 
    异常
      

  2.   

    IEnumerable接口主要作用是支持集合上简单重复的枚举值,和支持做数据绑定.
      

  3.   

    我感觉IList本身就实现了IEnumerable接口,泛形没用过有错见谅
      

  4.   

    IList的声明
    Public Interface IList(Of T) _
    Implements ICollection(Of T), IEnumerable(Of T),  _
    IEnumerable