Wird das folgende Verhalten erwartet?Reihenfolge der Auswertung bei Verwendung des bedingten Operators
public class TestClass
{
public int IntValue { get; set; }
}
TestClass instance = null;
// this line throws exception: Object reference not set to an instance of an object
string test1 = "abc" + instance != null ? instance.IntValue.ToString() : "0";
// this works
string test2 = instance != null ? instance.IntValue.ToString() : "0";
// this works
string test3 = "abc" + (instance != null ? instance.IntValue.ToString() : "0");
UPDATE:
Wie kommt dies keine Ausnahme werfen?
TestClass instance = null;
string test4 = "abc" + instance;
string test5 = "abc" + true;
Ja, es ist zu erwarten. – JLRishe
'" abc "+ instance' ist nie null – fubo
In dem Moment, in dem Sie versuchen," abc "und die Instanz zu verketten, wird ToString() für Instanz aufgerufen - wenn dies null ist, erhalten Sie die Ausnahme, also ja, wird erwartet. – Darren