J'essaie vraiment de suivre le principe DRY. J'ai un sous qui ressemble à ceci? Je voudrais les condenser en une seule méthode en utilisant des génériques. Pour l'enregistrement, ItemSummaries et NumberedInventories sont tous deux dérivés de la même classe de base DataBuilderBase.Comment créer une méthode générique dans une classe?
Je ne peux pas comprendre la syntaxe qui me permettra de faire ItemSumms.FillRows et numInvs.FillRows dans la méthode.
FillRows est déclaré Public Overridable Sub FillRows
dans la classe de base.
Merci d'avance.
EDIT
Voici mon résultat final
Private Sub DoSupplyModels()
DoSupplyModelType("ITEM SUMMARIES",New DataBlocks(_currentSupplyModel,_excelRows)
DoSupplyModelType("DATA BLOCKS",New DataBlocks(_currentSupplyModel,_excelRows)
End Sub
Private Sub DoSupplyModelType(ByVal outputDescription As String, ByVal type As DataBuilderBase)
OutputLine(outputDescription)
type.FillRows()
OutputLine("")
End Sub
Mais pour répondre à ma question ... je aurais pu faire ça ...
Private Sub DoSupplyModels()
DoSupplyModelType(Of Projections)("ITEM SUMMARIES")
DoSupplyModelType(Of DataBlocks)("DATA BLOCKS")
End Sub
Private Sub DoSupplyModelType(Of T as DataBuilderBase)(ByVal outputDescription As String, ByVal type As T)
OutputLine(outputDescription)
Dim type as New DataBuilderBase (_currentSupplyModel,_excelRows)
type.FillRows()
OutputLine("")
End Sub
Est-ce exact?
Seth
Est-ce qu'un C# exemple aider? – R0MANARMY
Vous voulez changer DoSupplyModel pour recevoir un 'ItemSummaries' ou un' NumberedInventories'? Si c'est le cas, vous pouvez simplement utiliser la classe de base 'DataBuilderBase' pour recevoir le type de paramètre. Vous n'avez pas besoin d'un générique dans ce cas. –
C# est bien ... Je peux le convertir si je ne comprends pas ... mais je lis assez bien C#. –