Я только начал работать со ссылочными типами Nullable в C # 8 и .Net core 3.0, и получил предупреждение, но я не понимаю, почему я его получил.
Надеюсь, один из вас сможетпомогите мне понять это.
Вот две тестовые функции, которые дают разные результаты:
private void Test(ISpectrum? modelSpectrum) {
var readyToCapture = modelSpectrum is Spectrum;
if (readyToCapture)
Model.ReferenceRawSpectrum = new Spectrum(modelSpectrum.XData);
}
private void Test2(ISpectrum? modelSpectrum) {
if(modelSpectrum is Spectrum)
Model.ReferenceRawSpectrum = new Spectrum(modelSpectrum.XData);
}
Test1: выдает предупреждение «возможное нулевое» на modelSpectrum.XData, и это удивляет меняпоскольку readyToCapture проверил modelSpectrum на нулевое значение.
Test2: не дает никаких предупреждений, как ожидалось.
Можете ли вы объяснить, почему в Test1 есть предупреждение?