Sono confuso con l'implementazione Static
in VB.NET. In C#, possiamo creare classi statiche e metodi statici per scrivere metodi di utilità per la nostra applicazione.Implementazione del metodo statico in VB.NET
Ora, VB.NET ci consente di creare Module
al posto della classe statica. Se creiamo un metodo nel modulo, per impostazione predefinita diventa statico. Ma nella mia richiesta, ho scritto il codice qui sotto:
Public Class Utility
Public Shared Function GetValue() As String
// My code
End Function
End Class
Scrivendo il codice, sono in grado di accedere al metodo utilità come Utility.GetValue()
. Poiché questa non è una classe statica, dovrei istanziarne un oggetto. Ma questo metodo è disponibile sia per la classe e oggetti di Utility
Ora le mie domande sono:
- è l'implementazione che ho fatto possa violare una delle caratteristiche della classe statica quel modulo forniscono?
- Quale sarà la differenza tra questo e l'implementazione di un modulo, invece?
- Se creo invece un modulo, lo scopo sarà lo stesso di questa classe? Voglio accedere al metodo in tutto il progetto e ad altri progetti in cui viene fatto riferimento a questo.
Ho provato a consultare più articoli, ma da nessuna parte ho trovato queste risposte esatte. Per favore aiuto.
Dietro le quinte, una funzione pubblica in un modulo viene convertita in una funzione condivisa di una classe; Sono la stessa cosa. Anche se Utility può essere istanziata, non puoi ** accedere a GetValue() attraverso un'istanza di Utility; dovresti comunque usare 'Utility.GetValue()'. –
La differenza principale è che con una classe potresti avere anche membri non condivisi in Utility (non puoi accedere a quegli elementi non condivisi da quelli condivisi). Ma rispetto a ** solo ** i membri condivisi, sarà lo stesso di utilizzare un modulo. –
Sono in grado di accedere anche al metodo 'GetValue()' per le istanze dell'oggetto. Ecco dove nasce la mia confusione. @Idle_Mind –