dotnet/runtime
Ver no GitHubStringBuilder Has Different Equals Implementations
Open
#41.230 aberto em 23 de ago. de 2020
area-System.Runtimedocumentationhelp wanted
Métricas do repositório
- Stars
- (17.886 stars)
- Métricas de merge de PR
- (Mesclagem média 12d 11h) (661 fundiu PRs em 30d)
Description
Description
StringBuilder has two different versions of Equals. Equals(object) uses the version defined in class Object, while Equals(StringBuilder) uses the in-class implementation. These two different behaviors are confusing.
Considering these code. The different results are confusing.
StringBuilder a = new StringBuilder();
StringBuilder b = new StringBuilder();
object c = b;
a.Append("abc");
b.Append("abc");
Console.WriteLine(a.Equals(b)); // True
Console.WriteLine(a.Equals(c)); // False
Configuration
OS Name: Windows OS Version: 10.0.18363 OS Platform: Windows RID: win10-x64 Base Path: C:\Program Files\dotnet\sdk\3.1.301\
.NET Core SDK: Version: 3.1.301 Commit: 7feb845744
Regression?
Not noticed.
Other information
None.