title: the type (my class) must be non-nullable type in order to use as a parameter 'T' in a generic method
body: <p>So I am getting a fun compiler error!  I'll paste it down here as well: "the type (my class) must be non-nullable type in order to use as a parameter 'T' in the generic method"</p>
  
  <p>This doesn't make sense to me since my method is not generic.  Here is how I am calling the offending code:</p>
  
  <pre><code>Item? inputtedItem = SearchProduct(txtProduct.Text);
  </code></pre>
  
  <p>Meanwhile, here is the definition of SearchProduct:</p>
  
  <pre><code>        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];
      }
  </code></pre>
  
  <p>I suppose I'll add the indexer from my inventory class in here for good measure:</p>
  
  <pre><code>       public Item this[string i]
      {
          get
          {
              Item returnItem;
              _productList.TryGetValue(i, out returnItem);
              return returnItem;
          }
          set
          {
              _productList.Add(i, value);
          }
      }
  </code></pre>
  
  <p>Does anybody know what's wrong?</p>
  
  <p>Thank you for the help.</p>