Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add generic IStructuralEquatable<T> and IStructuralComparable<T> #37482

Open
charlesroddie opened this issue Jun 5, 2020 · 0 comments
Open
Labels
api-needs-work API needs work before it is approved, it is NOT ready for implementation area-System.Runtime
Milestone

Comments

@charlesroddie
Copy link

Currently there is a non-generic IStructuralEquatable. This causes 1. loss of type safety, including requirements for implementing code to downcast, 2. poor performance especially with structs.

So generic IStructuralEquatable and IStructuralComparable should be added.

There is good progress towards obsoletion of non-generic non-structural equality and comparison, with the deprecation of collection classes that use them: non-generic collections shouldn't be used

A similar approach should be taken for IStructuralEquatable and IStructuralComparable.

@charlesroddie charlesroddie added the api-suggestion Early API idea and discussion, it is NOT ready for implementation label Jun 5, 2020
@Dotnet-GitSync-Bot Dotnet-GitSync-Bot added area-System.Runtime untriaged New issue has not been triaged by the area owner labels Jun 5, 2020
@joperezr joperezr added api-needs-work API needs work before it is approved, it is NOT ready for implementation and removed untriaged New issue has not been triaged by the area owner labels Jul 7, 2020
@joperezr joperezr added this to the Future milestone Jul 7, 2020
@terrajobst terrajobst removed the api-suggestion Early API idea and discussion, it is NOT ready for implementation label Jun 25, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api-needs-work API needs work before it is approved, it is NOT ready for implementation area-System.Runtime
Projects
None yet
Development

No branches or pull requests

4 participants