ILSpy shows that String.IsNullOrEmpty
is implemented in terms of String.Length
. But then why is String.IsNullOrEmpty(s)
faster than
In CLR via CSharp chapter 10 "Properties" Jeff Richter writes:
A property method can take a long time to execute; field access always completes immediately. A common reason to use properties is to perform thread synchronization, which can stop the thread forever, and therefore, a property should not be used if thread synchronization is required. In that situation, a method is preferred. Also, if your class can be accessed remotely (for example, your class is derived from
System.MarshalByRefObject
), calling the property method will be very slow, and therefore, a method is preferred to a property. In my opinion, classes derived fromMarshalByRefObject
should never use properties.
So if we see String.Length
is property and String.IsNullOrEmpty
is a method which may execute faster than the property String.Length
.