Não entendo por que esse código gera um nullref. Acho que tem algo a ver com a prioridade do operador 'mais' e do operador 'é', mas não sei bem por quê.
return "somestring " + B is not null ? $" {B.Property}" : "empty";
Amostra completa:
internal class Program
{
static void Main(string[] args)
{
var a = new A();
Console.WriteLine(a.ToString());
Console.ReadKey();
}
}
public class A
{
public B? B { get; set; }
public override string ToString()
{
return "somestring " + B is not null ? $" {B.Property}" : "empty"; //nullref
return "somestring " + (B is not null ? $" {B.Property}" : "empty"); //works
}
}
public class B
{
public string Property { get; set; } = "Property";
}