public void Test(T reference, T same, T differentOrGreater)
{
var comparisonInterface = typeof(T)
.GetInterfaces()
.FirstOrDefault(
i => i.IsGenericType &&
i.GetGenericTypeDefinition() == typeof(IComparisonOperators));
this.GetType()
.GetMethod(nameof(this.CheckComparisonOperators),
BindingFlags.NonPublic | BindingFlags.Instance)!
.MakeGenericMethod(typeof(T))
.Invoke(this, [reference, same, differentOrGreater]);
}
private void CheckComparisonOperators(T reference, T same, T greater)
where T : IComparisonOperators
{
// do stuff
}
public record BaseSize(uint Value) : IComparisonOperators
where T : BaseSize
{
// implementation
}
public record DerivedSize(uint Value) : BaseSize(Value);
Der Aufruf funktioniert gut mit BaseSize, schlägt jedoch für DerivedSize fehl:
private void CheckComparisonOperators(T reference, T same, T greater) where T : IComparisonOperators { // do stuff }
public record BaseSize(uint Value) : IComparisonOperators where T : BaseSize { // implementation }
public record DerivedSize(uint Value) : BaseSize(Value); [/code] Der Aufruf funktioniert gut mit BaseSize, schlägt jedoch für DerivedSize fehl: [code]Test(new DerivedSize(1), new DerivedSize(1), new DerivedSize(2)); [/code] Wie kann ich das beheben?
Ich versuche derzeit, einen Einheit /Integrationstest zu schreiben, indem ich den Anbieter von Memory -Datenbank unter Verwendung eines Memory -Datenbankanbieters zu schreiben habe. Entity Framework...
Ich habe eine Situation, in der es praktisch wäre, eine vorhandene Funktion aufzurufen, die ein Referenzargument akzeptiert, und zwar mit einem Aufruf über eine std::function, die einen Zeiger...
Ich habe eine Situation, in der es praktisch wäre, eine vorhandene Funktion aufzurufen, die ein Referenzargument akzeptiert, und zwar mit einem Aufruf über eine std::function, die einen Zeiger...
Ich versuche, Node.js für Raspberry Pi Zero v1 zu kompilieren. Im Gegensatz zum v2-Modell verfügt dieses Modell über eine Armv6-CPU und offizielle Node-Releases zielen nur auf Armv7+ ab.
Ich habe das...