Ho un codice che è quasi identico, ma usa tipi assolutamente diversi, senza ereditarietà tra loro, sulla variabile principale. In particolare, sto scrivendo un analizzatore con Roslyn per C # e VB.NET, con i seguenti tipi:
Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax Microsoft.CodeAnalysis.VisualBasic.Syntax.AttributeSyntax
Mi chiedo se, poiché il codice sta facendo la stessa cosa, dovrei tenerlo il più SECCO possibile, suddividendolo il meno possibile in metodi separati (ma identici oltre al tipo), o separarlo completamente perché i due metodi sono cambiamenti non correlati e futuri potrebbero costringere una versione a cambiare, ma non l'altra (anche se questo è improbabile)?
Modifica: circa un anno dopo, ho riscontrato lo stesso problema e il team di Roslyn mi ha aiutato a risolverlo: scrivere una classe di base che prende generici e ha un TAttributeSyntax
parametro che fa la maggior parte del lavoro. Quindi, scrivere le classi derivate con il minimo indispensabile di dati che richiedono un tipo specifico.