类型(我的类)必须是不可空类型才能在泛型方法中用作参数“T”

问题描述 投票:0回答:1

所以我收到了一个有趣的编译器错误! 我也将其粘贴在这里:“类型(我的类)必须是不可为空的类型,才能在泛型方法中用作参数‘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);
        }
    }

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

谢谢您的帮助。

c#
1个回答
6
投票

我认为您不需要

?
中的
Item?
。如果
Item
是自定义类,则默认可为空。

© www.soinside.com 2019 - 2024. All rights reserved.