Je suis nouveau dans C # et en explorant les fonctionnalités du langage, je suis tombé sur quelque chose d'étrange:
struct Foo
{
public Foo Identity() { return this; }
public static void Bar(Foo? foo)
{
Foo foo1 = foo?.Identity().Value; // Does not compile
Foo foo2 = (foo?.Identity()).Value; // Compiles
}
}
Quelqu'un pourrait-il m'expliquer pourquoi les parenthèses sont nécessaires?