Ich denke, das ist wirklich eine sehr lame Frage, aber ich denke, auf SO
werde ich die Antwort schneller erhalten, als durch sie selbst googeln :)C# Objekt Modifikation
Lassen Sie uns sagen, dass ich eine Klasse mit einem Konstruktor haben:
public class TestClass {
private readonly IRepository repository;
public TestClass(IRepository repository)
{
this.repository = repository;
// Here is the non-obvious line - it invokes some
// method, which changes the internal contents of
// the repository object.
repository.AddSomething(...);
}
}
Und jetzt:
IRepository sqlRepository = new SqlRepository(...);
TestClass testClass = new TestClass(sqlRepository);
1) Ich bin nicht gut in Wert/Referenz in C#
vorbei - so könnte jemand bitte eine Schritt-für-Schritt Erklärung geben, was in diesem Fall passiert.
2) Hat das sqlRepository
Objekt geändert bekommen (ich nehme nicht) und ist es eine Möglichkeit, den Konstruktor von TestClass
ändern zu machen (ich weiß, es ist böse, nur für mich zu wissen)?
3) Würden die repository.AddSomething(...)
und this.repository.AddSomething(...)
Linien im Konstruktor den gleichen Effekt haben und warum?
4) Welchen Effekt hat readonly
auf die Versuche des Repository Änderungen in diesem Beispiel?