Funzione PV e porta da VB6 a C #

Sto lavorando al porting di un codice VB6 classico su C # e mi sono imbattuto in un utilizzo della funzione PV .

Mi sento in errore includendo un riferimento all’assembly Microsoft.VisualBasic. È qualcosa che si fa comunemente, o dovrei esplorare ulteriori opzioni. La prossima idea che mi viene in mente è esplorare questa funzione PV in Reflector.

L’uso di Microsoft.VisualBasic da C # e VB.NET è stato discusso a fondo sotto questa domanda . Lo spazio dei nomi Microsoft.VisualBasic è completamente supportato e sarà disponibile fino a .Net. Non c’è ragione di evitarlo.

EDIT: Sta dicendo che al momento della digitazione, le altre risposte a questa domanda sono una reimplementazione non corretta della funzione e una libreria non supportata da una sola riga da Code Galleries. Andiamo ragazzi, ci vorrebbe un vero grande evento per Microsoft per abbandonare le funzioni finanziarie da VB.

È una storia diversa per Microsoft.VisualBasic.Compatibility , che è destinata esclusivamente all’aggiornamento guidato VB6, EDIT è ora contrassegnato come obsoleto in .Net 4 (la mia previsione si è avverata) e non dovrebbe essere utilizzato per nuovi sviluppi. Ci sarebbero alcuni vantaggi nella rimozione dei riferimenti a questo, ma personalmente probabilmente proverei a realizzare una porta completamente funzionante prima di fare riferimento a 3.5 3.5.

Piuttosto semplice da replicare in C #

  public static double PV(double Rate, int nPer, double Pmt, double FV, bool Type) { double ann = Math.Pow(1 + Rate, nPer); return -(FV + Pmt * (1 + (Type ? Rate : 0)) * ((ann - 1) / Rate)) / ann; } 

Solo una riorganizzazione della formula fornita da Microsoft.

È ansible utilizzare questa libreria che duplica le funzioni di Excel in f #

Biblioteca

Ha PV che è valore attuale. L’ho usato una o due volte. Basta rilasciarlo e aggiungere il riferimento.