¿Cuál es el uso de una variable Shared
en VB.NET?¿Cuál es el uso de una variable compartida en VB.NET?
Respuesta
Es lo mismo que static
en C# y en la mayoría de los demás idiomas. Significa que cada objeto en la clase usa la misma copia de la variable, propiedad o método. Cuando se usa con un método, ya que es estático, no necesita una instancia de objeto.
MyClass.DoSomething()
en lugar de
Dim oObject as New MyClass()
oObject.DoSomething()
Simplemente cada vez que quieren tener una sola instancia de variable para toda la aplicación, compartida entre los objetos de la clase. En lugar de 1 por objeto
La palabra clave "Compartida" en VB.NET es el equivalente de la palabra clave "estática" en C#.
En VB.NET, la palabra clave Shared se puede aplicar a las sentencias Dim, Event, Function, Operator, Property y Sub dentro de una clase; sin embargo, en C#, la palabra clave static
se puede aplicar tanto a estas instrucciones dentro de una clase normal, como a nivel de clase para hacer que toda la clase sea estática.
Un método "estático" "compartida" o actúa sobre el "tipo" (es decir, la clase) en lugar de actuar sobre un ejemplo del tipo/clase. Dado que los métodos (o variables) Shared
actúan sobre el tipo en lugar de una instancia, solo puede haber una sola "copia" de la variable o método en lugar de muchas copias (una para cada instancia) en el caso de no compartido (es decir, , instancia) métodos o variables.
Por ejemplo: si tiene una clase, podemos llamarla MyClass con un único método no compartido llamado MyMethod.
Public Class MyClass
Public Sub MyMethod()
// Do something in the method
End Sub
End Class
Para llamar a ese método necesitaría una instancia de la clase para llamar al método. Algo así como:
Dim myvar as MyClass = New MyClass()
myvar.MyMethod()
Si entonces se hizo este método en un método "compartida" (añadiendo el calificativo "compartida" en la definición del método, que ya no necesita una instancia de la clase para llamar al método
.Public Class MyClass
Public Shared Sub MyMethod()
// Do something in the method
End Sub
End Class
Y luego:..
MyClass.MyMethod()
también puede ver ejemplos de esto en el marco .NET en sí por ejemplo, el tipo "cadena" tiene muchos métodos estáticos/compartidos Es decir
// Using an instance method (i.e. Non-shared) of the string type/class.
Dim s as String = "hello"
s.Replace("h", "j")
// Using a static/shared method of the string type/class.
s = String.Concat(s, " there!");
He aquí un buen artículo que explica aún más:
El equivalente aproximado de una clase estática (compartida) en VB es un módulo. – Antony
- 1. Uso de una variable global en una biblioteca compartida
- 2. Es una variable global en una biblioteca/dll compartida, compartida en el proceso
- 3. El uso de la variable compartida por 10 pthreads
- 4. ASP.Net: Uso de System.Web.UI.Control.ResolveUrl() en una función compartida/estática
- 5. ¿Cuál es el uso de la sintaxis = =?
- 6. ¿Variable pública compartida compartida entre usuarios?
- 7. ¿Cuál es el uso de declarar una variable estática como extern dentro de una función?
- 8. ¿Cuál es el uso de window.external?
- 9. ¿Cuál es el equivalente de C# de CType en VB.NET?
- 10. ¿Cuál es el equivalente de App.Path y App.EXEName en VB.Net
- 11. ¿Cuál es el alcance de una variable lambda en C#?
- 12. ¿Cuál es el equivalente de Program.cs en VB.NET
- 13. ¿Cuál es la codificación predeterminada para una cadena en VB.NET?
- 14. ¿Cuál es el uso de ^: dinámico en una definición?
- 15. ¿Cuál es el uso del uso de init() en JavaScript?
- 16. ¿Cuál es el mejor marco de simulación para VB.NET?
- 17. ¿Cuál es el beneficio de la eliminación de las importaciones redundantes en vb.net o el uso en C# archivo
- 18. ¿Cuál es el mejor conversor de C# a VB.net?
- 19. ¿Cuál es el uso de setupUi (esto) en Qt
- 20. ¿Cuál es el equivalente de VB.NET a este código C#?
- 21. ¿Cuál es el uso de singletonList?
- 22. ¿Cuál es el uso de Indexers?
- 23. ¿Cuál es el uso previsto de IllegalStateException?
- 24. ¿Cuál es el uso correcto de EnsureChildControls()?
- 25. ¿Cuál es el uso de AtomicReferenceArray?
- 26. Uso de C# y VB.NET en una solución
- 27. ¿Cuál es el uso de Log4j API?
- 28. ¿Cuál es el uso de qGetPtrHelper en este ejemplo?
- 29. ¿Cuál es el uso de Deployment.Current.Dispatcher.BeginInvoke (() => {...})?
- 30. ¿Cuál es el uso de "indulgente"?
El autor de la pregunta específicamente dirigidos preguntó acerca de las variables compartidas, no métodos compartidos. –
Mentalmente reemplaza DoSomething() con Algo para que la publicación se aplique a las variables en lugar de a los métodos. – OregonGhost