serializeobject serialize qué objetos newtonsoft net método jsonconvert example ejemplos deserializeobject clases asp .net vb.net

.net - serialize - Nuevo{objeto} vs{objeto}=nuevo{objeto}



newtonsoft json stringify (3)

En VB.NET, son idénticos. La variante As New es canónica.

En VB6, su semántica realmente difería (aparte del hecho obvio de que VB6 no permitía asignaciones en declaraciones): la variante As New crearía un objeto que nunca podría ser Nothing . Más bien, el tiempo de ejecución garantizaría que el objeto siempre se inicializara correctamente antes de cada acceso a él.

Me preguntaba si hay alguna diferencia entre los dos nuevos iniciadores de objetos o si es solo azúcar sintáctico.

Asi es:

Dim _StreamReader as New Streamreader(mystream)

y diferente a:

Dim _StreamReader as Streamreader = new streamreader(mystream)

¿Hay alguna diferencia bajo el capó? o son los dos iguales? ¿Cuál prefiere usar?


No soy un tipo VB, pero hasta donde puedo decir que son equivalentes. De acuerdo con la descripción de MSDN de la declaración Dim :

Si no especifica el tipo de datos, la variable toma el tipo de datos del inicializador. Si no está presente ni el tipo de datos ni el inicializador, de forma predeterminada, el tipo de datos es Tipo de datos de objeto. Si especifica tanto el tipo de datos como el inicializador, el tipo de datos del inicializador debe ser convertible a tipo de datos.

No aprobaré ningún comentario sobre preferencia, ya que no utilizo VB (excepto cuando respondo declaraciones).


Estas declaraciones son idénticas. Personalmente prefiero la sintaxis "Dim x como nuevo" porque es más conciso. No hay ninguna razón para escribir el mismo nombre de tipo en la misma declaración cuando no hace una diferencia programática. Todo lo que hace es hacerte pasar más tiempo en el teclado :)