2011-05-28 5 views
2

Je ne suis pas sûr que cela soit possible, mais j'aimerais associer une référence de nom de classe à une méthode/propriété/variable de membre partagée. Considérez:VB.NET: utiliser le nom de classe comme expression

Public Class UserParameters 

    Public Shared Reference As Object 

    Public Shared Function GetReference() As Object 
     Return Reference 
    End Function 

End Class 

Dans une autre partie du programme, je voudrais simplement appeler userParameters et avoir le retour de référence soit par aliasing getReference ou la variable directement.

Je suis en train d'imiter l'application, demande ou variable de session: session (0) = Session.Item (0)

Toutes les suggestions seraient grandement appréciés.

+0

Non, vous ne pouvez pas. Pourquoi as-tu besoin de cela? –

+0

Pour émuler les variables globales Session et Application. Vous pouvez accéder à la collection Item dans Session comme ceci - Session (0) - au lieu de comme ceci - Session.Item (0). Je voudrais le faire avec mon objet personnalisé. – user317808

Répondre

1

Vous ne pouvez pas renvoyer directement un membre d'instance à partir d'une méthode statique (la méthode statique ne peut pas accéder aux membres d'instance car elle n'est pas instanciée avec le reste de la classe, seule une méthode statique existe).

Si vous avez besoin d'installer une classe de telle sorte que vous pouvez retourner une instance d'une méthode statique que vous devez faire quelque chose de semblable à ce qui suit:

Public Class SampleClass 

    Private Sub New() 
     'Do something here 
    End Sub 

    Public Shared Function GetSample() As SampleClass 
     Dim SampleClass As SampleClass 
     SampleClass = New SampleClass 

     SampleClass.Sample = "Test" 

     Return SampleClass 
    End Function 

    Private _SampleString As String 
    Public Property Sample As String 
     Get 
      Return _SampleString 
     End Get 
     Private Set(ByVal value As String) 
      _SampleString = value 
     End Set 
    End Property 

End Class 

Public Class SampleClass2 

    Public Sub New() 
     'Here you can access the sample class in the manner you expect 
     Dim Sample As SampleClass = SampleClass.GetSample 
     'This would output "Test" 
     Debug.Fail(Sample.Sample) 
    End Sub 
End Class 

Cette méthode est utilisée dans divers endroits dans le CLR. Tels que le System.Net.WebRequest class. où il est instancié de cette manière dans l'utilisation:

' Create a request for the URL.   
     Dim request As WebRequest = WebRequest.Create("http://www.contoso.com/default.html") 
+0

Excuses - J'ai fait une faute de frappe - Référence est également partagée. Fondamentalement, je veux juste que UserParameters alias une variable de classe partagée (référence) ou une méthode partagée (GetReference) qui pourrait ensuite retourner la valeur de la variable partagée. L'un ou l'autre serait génial. – user317808

Questions connexes