Hej, mam problem w klasie Produkt w konstruktorze. Chciałbym aby pole OpakowanieProduktu mogło przyjmować wartość null. Niestety nie pomaga dołożenie ? i VisualStudio pokazuje następujący błąd.
W jaki sposób mogę umożliwić by w sytuacji gdy podczas konstruowania produktu nie podam opakowania, to stworzony obiekt w polu OpakowanieProduktu będzie przechowywał null?
using System;
namespace Test
{
class Program
{
internal enum Material : byte
{
Papier,
Folia
}
struct Opakowanie
{
private Material Material { get;}
public Opakowanie(Material material)
{
Material = material;
}
public override string ToString() => $"material: {Material}";
}
class Produkt
{
private string Nazwa { get;}
private Opakowanie? OpakowanieProduktu { get;}
public Produkt(string nazwa, Opakowanie opakowanieProduktu = null)
{
Nazwa = nazwa;
OpakowanieProduktu = opakowanieProduktu;
}
public override string ToString()
{
return "=== INFORMACJA O PRODUKCIE ===\n" +
$"Nazwa produktu: {Nazwa}\n" +
$"Opakowanie produktu: {OpakowanieProduktu}\n";
}
}
static void Main(string[] args)
{
Opakowanie opakowanie = new Opakowanie(Material.Papier);
Produkt produkt = new Produkt("Telewizor", opakowanie);
Console.WriteLine(produkt);
Produkt produkt2 = new Produkt("Telewizor");
Console.WriteLine(produkt2);
}
}
}