Ich versuche, das Builder-Muster zu verwenden, und ich habe in eine Not geraten, die ich vorher nicht getroffen habe. Ich versuche Generika in die Builder-Optionen zu integrieren.T Generics arbeitet nicht mit Builder-Muster
public class ObjectBuilder
{
private object_collectionModelType;
//private Type_collectionModelType;
public void Build()
{
var x = CreateCollection<typeof(_collectionModelType)>(...);
}
//helper
private Collection<T> CreateCollection<T>(...)
{
...
}
}
Es mag es nicht, mir die _collectionModelType vorbei ist der Fehler:
_collectionModelType ist ein Feld, sondern als eine Art verwendet.
Nun ja Visual Studio Compiler Sie sind richtig und ich möchte es beheben, aber nicht wie?
Irgendwie brauche ich den Erbauer, um zu erlauben, dass ein Basisobjekt oder ein System.Type als Teil der Konfiguration übergeben wird, das dem privaten Unterstützungsfeld zugewiesen wird und dann in der Errichtungsmethode benutzt wird.
Denken Sie daran, dass C# eine statisch typisierte Sprache ist. Es wäre unmöglich für den Compiler, einen statischen Typ für "x" in diesem Code bereitzustellen. – Enigmativity