Jestem zdezorientowany z implementacją Static
w VB.NET. W języku C# możemy stworzyć klasę statyczną i metody statyczne do napisania metod użytkowych dla naszej aplikacji.Implementacja metody statycznej w VB.NET
Teraz VB.NET pozwala nam stworzyć Module
zamiast klasy statycznej. Jeśli tworzymy metodę w module, domyślnie staje się statyczna. Ale w mojej aplikacji, napisałem poniższy kod:
Public Class Utility
Public Shared Function GetValue() As String
// My code
End Function
End Class
Pisząc kod, jestem w stanie uzyskać dostęp do metody użytkową jako Utility.GetValue()
. Ponieważ nie jest to klasa statyczna, powinienem utworzyć jej obiekt. Ale ta metoda jest dostępna zarówno dla klasy i obiektów Utility
Teraz moje pytania to:
- jest realizacja Zrobiłem może naruszyć żadnej z cech klasy statycznej że moduł dostarczyć?
- Jaka będzie różnica między tym a wdrożeniem modułu?
- Jeśli zamiast tego utworzę moduł, czy jego zakres będzie taki sam jak tej klasy? Chcę uzyskać dostęp do metody w całym projekcie, a także innych projektach, do których się odwołuje.
Próbowałem konsultacji wielu artykułów, ale nigdzie nie znaleziono dokładnych odpowiedzi. Proszę pomóż.
Za kulisami funkcja publiczna w module jest konwertowana na wspólną funkcję klasy; To są te same rzeczy. Mimo że narzędzie można utworzyć instancję, ** nie można ** uzyskać dostępu do GetValue() poprzez wystąpienie narzędzia; nadal musiałbyś używać 'Utility.GetValue()'. –
Główna różnica polega na tym, że w klasie można również mieć nieprzydzielonych członków w narzędziu (nie można jednak uzyskać dostępu do tych niewspółużytkowanych elementów z udostępnionych). Ale w odniesieniu do ** tylko ** współdzielonych członków, będzie to to samo, co użycie modułu. –
Jestem również w stanie uzyskać dostęp do metody 'GetValue()' dla instancji obiektów. Tutaj powstaje moje zamieszanie. @Idle_Mind –