Best practice is to use String.IsNullOrEmpty (or, if it meets your requirements, from .Net 4.0 - String.IsNullOrWhiteSpace ).
If you call s.Length , then you will get a NullReferenceException if the string is null . This means that you will need to check if(s == null || s.Length == 0) . This will be the most efficient and probably the fastest, but you can use String.IsNullOrEmpty .
s == string.Empty will return false if the string is null ( null does not match the empty string).
As far as performance is concerned, do not spare more time thinking about it. It will almost never, never, never, never, ever affect performance.
source share