vectores una referencia por paso pasar parametro funciones funcion enviar con como bidimensional arreglo array .net arrays vb.net mono pass-by-reference

.net - una - Pasar un elemento de matriz por referencia



paso por referencia en c array (1)

El código está bien. Definitivamente es un error en el compilador que estás usando.

Estoy compilando el siguiente código usando el Mono compiler v4.2.1 ( .NET Framework 4.5):

Module Module1 Sub Change(ByRef x As Integer) x += 1 End Sub Sub Main() Dim arr() As Integer = {1} Change(arr(0)) Console.WriteLine(arr(0)) End Sub End Module

La salida producida es: 1. ¿Por qué el parámetro x no se une al elemento de matriz por referencia? ¿Hay alguna manera de hacer que esto funcione sin tener que pasar la matriz?

Detalles adicionales :

  • Estoy ejecutando el código anterior a través de HackerRank

  • El código anterior produce el resultado de 2 cuando se ejecuta desde Visual Studio 2010/2012.

  • No estoy seguro si la motivación es importante para la pregunta, pero pasar un elemento de matriz por referencia es bastante útil. Por ejemplo, uno puede implementar Swap que toma dos elementos de matriz.