5

所以我得到了一个有趣的编译器错误!我也会把它贴在这里:“类型(我的类)必须是不可为空的类型才能在泛型方法中用作参数'T'”

这对我来说没有意义,因为我的方法不是通用的。这是我如何调用有问题的代码:

Item? inputtedItem = SearchProduct(txtProduct.Text);

同时,这里是 SearchProduct 的定义:

        private Item? SearchProduct(string product)
    {
        //If this is the first item to be entered into the inventory
        if (_inventory == null || _inventory._productList.Count == 0)
        {
            return null;
        }
        //Return the Item's instance if it appears in the inventory.  Otherwise return null.
        return _inventory[product];
    }

我想我会在这里添加我的库存类中的索引器,以便更好地衡量:

       public Item this[string i]
    {
        get
        {
            Item returnItem;
            _productList.TryGetValue(i, out returnItem);
            return returnItem;
        }
        set
        {
            _productList.Add(i, value);
        }
    }

有人知道出了什么问题吗?

感谢您的帮助。

4

1 回答 1

6

我认为您不需要?in Item?。如果Item是自定义类,默认情况下可以为空。

于 2012-07-29T23:53:03.353 回答