Kann ich eine Klassendefinition durch eine eigene Implementierung ersetzen (oder überschreiben)?Ersetzen einer Klassenimplementierung in C#
Erläuterung:
- ich eine Klasse mit einer System.Random Instanz habe, und ich versuche, es zu Test ohne seinen ursprünglichen Code zu ändern ...
- So Random Ich plane, ersetzen Klasse mit einer eigenen Implementierung, die es ermöglicht, generierte Sequenzen zu steuern. Siehe this question.
`
class foo
{
Random r=new Random();
double bar()
{
double ans=r.NextDouble();
.....// evaluate ans
return ans;
}
}
`
Was sind die Möglichkeiten, die ich Implementierung von Random-Klasse durch eine andere ersetzen kann (oder mit minimalen Änderungen) den ursprünglichen Code-Datei ohne Änderung ??
Bearbeiten:
Eine Lösung ist Random-Klasse zu erben und zu ändern ... aber das erfordert Ändern jeder Random-Instanz mit der geerbten ... Ich möchte den Code nicht ändern, weil ich es gerade testen !! Bearbeiten 2:
Kann ich in C# sagen: "Jede Random-Klasse in dieser Datei ist MyNamespace.Random nicht System.Random" ??
Können Sie das klären? Möchten Sie nur einige ersetzen, wenn es Mitglieder sind? Möchten Sie es erweitern, um neue hinzuzufügen? – CodingGorilla
Hört sich an wie du nach dem Erstellen von Mocks bist, könnte das sein? – Lucero
@Lucero +1, dachte ich die gleiche Sache – CodingGorilla