In general, the only way to know exactly how this will behave is to check the reference source. You can check the documentation to see if it is being implemented IEquatable<T>(in this case you will also get the โexpectedโ behavior).
Equals GetHashCode, . , , , System.Object.
DirectoryInfo , , , , , , . FullName , aa string .