类派生自列表

本文关键字:列表 派生 | 更新日期: 2023-09-27 18:16:26

我有一个从泛型列表派生的c#类

public class CostCodes : List<CostCode>
{
    public CostCodes() : base()
    {
        Add(new CostCode { Description = "DOM0010 Fall Arr", ID = 1599 });
        Add(new CostCode { Description = "DOM0020 Acoustics", ID = 1600 });
    }

当我尝试在这个派生类上使用Find方法时,智能感知中没有出现Find方法。

var codes = new CostCodes();
CostCode costCode = codes.Find(...

发现问题是由测试silverlight项目中的类引起的。把它们搬出去了,但最好能知道为什么会有不同。

——

还不能回答我自己的问题,但对于那些感兴趣的人来说,这篇文章说明了为什么

http://forums.silverlight.net/t/67428.aspx/1

显然在silverlight项目中没有Find方法。你必须使用linq和"first"方法而不是find

using System.Linq;
var costCode = codes.First(cc => cc.ID == id);

类派生自列表

这是智能感知的问题吗?

这个编译得很好:

public class CostCode {
    public string Description { get; set; }
}
public class CostCodes : List<CostCode> {
    public CostCodes()
        : base() {
        Add(new CostCode {Description = "DOM0010 Fall Arr"});
        Add(new CostCode {Description = "DOM0020 Acoustics"});
    }
}
// In another class...
public static void Main(string[] argStrings) {
    CostCodes s = new CostCodes();
    var hasDescription = s.Find(cc => cc.Description != null);
}

Find()方法应该出现在智能感知中。

我只能假设,也许你的var codes = new CostCodes();行引用了一个名为CostCodes的类型在不同的命名空间。

试试这个:

var codes = new Full.Namespace.CostCodes();