.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.