Is it possible to know whether a Record type has a custom implementation of the Equals
method using reflection?
For example, with the following code:
public sealed record A
{
public long Id { get; init; }
}
public sealed record B
{
public string Name { get; init; }
public bool Equals(B other) => StringComparer.InvariantCultureIgnoreCase.Equals(this.Name, other.Name);
public override int GetHashCode() => StringComparer.InvariantCultureIgnoreCase.GetHashCode(this.Name);
}
I would like a method which could return:
HasCustomEqualityImplementation(typeof(A)); // false
HasCustomEqualityImplementation(typeof(B)); // true
It does not seem obvious, as the compiler automatically generates an Equals
method for record A
, and I didn't find a way to differentiate it from the explicit implementation from record B
, but I may have missed something.
Aucun commentaire:
Enregistrer un commentaire