Sto cercando di creare una libreria di classi con una funzione per convertire gli interi binari in denari e viceversa, in modo da poterli importare in un altro progetto senza dover riscrivere la funzione. Funziona bene, ecco parte della classe:VB.NET - Funzioni di estensione all'interno di una classe?
Public Class BinaryDenary
Public Shared Function ToBinary(ByVal DenaryNumber As Integer) As Integer
Dim Binary As String = ""
While DenaryNumber > 0
If DenaryNumber Mod 2 = 1 Then
Binary = 1 & Binary
Else
Binary = 0 & Binary
End If
DenaryNumber \= 2
End While
Return CInt(Binary)
End Function
End Class
L'ho testato all'interno del progetto e funziona perfettamente.
ToBinary(3) 'Returns 11
ToDenary(110) 'Returns 6
Ma - per lo più per motivi estetici - mi piacerebbe essere in grado di utilizzarlo come un metodo di estensione, in modo che possa prendere una variabile e fare questo:
NormalInt.ToBinary(3)
Ma non posso scrivere metodi di estensione all'interno di una classe. C'è un modo per farlo? Non è estremamente importante, ma mi piace usare i metodi di estensione dove posso.
Qual è lo spazio dei nomi? Il modulo? Lo impongo nello stesso modo in cui importi una classe? – Lou
Namespace è un altro modo per organizzare il codice, leggi qui [Understanding Assembly and Namespace] (http://msdn.microsoft.com/en-us/library/ms973231.aspx) Un modulo è un codice di raccolta logico all'interno un assemblaggio, leggi qui [Che cos'è un modulo in .NET?] (http://stackoverflow.com/questions/645728/what-is-a-module-in-net) –
Quindi, per chiarire: I dovrebbe scrivere le funzioni all'interno di un nuovo modulo in un Namespace separato? E dovrebbe essere in un file .vb separato? – Lou