nxn boyutlu bir matrisin determinatını hesaplayan bir function yazdım, ancak functionu cağırıp kullandığımda işlem yapılan matris değişiyor, halbuki functiona gonderdiğim matrisin değişmesini istemiyorum. Aşağıda kodu ekliyorum, benim goremediğim şey nedir?

Public Function Det(ByVal matris(,) As Double, ByVal n As Integer) As Double

Dim oran As Double
For j = 0 To n - 1
For i = j + 1 To n - 1
oran = matris(i, j) / matris(j, j)
For k = 0 To n - 1
matris(i, k) = matris(i, k) - oran * matris(j, k)
Next
Next
Next
Dim Determinant As Double = 1
For i = 0 To n - 1
Determinant = Determinant * matris(i, i)
Next
Return Determinant
End Function

Private Sub btnHesapla_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHesapla.Click
Dim n As Integer = Val(txtMatrisBoyutu.Text)
Dim katsayilarMatrisi(,) As Double
ReDim katsayilarMatrisi(n - 1, n - 1)
For i = 0 To n - 1
For j = 0 To n - 1
katsayilarMatrisi(i, j) = InputBox("a" & i + 1 & "," & j + 1 & " elemanını giriniz")
Next
Next
'************** burada matris, fonksiyonla determinant hesaplandıktan sonra değişiyor, sıfırlama yontemiyle bulunan matris oluyor, "katsayilar" matrisinin değişmesini istemiyorum

Dim anaMatris(,) As Double
ReDim anaMatris(n - 1, n - 1)
anaMatris = katsayilarMatrisi
Dim katsayilar As Double = Det(katsayilarMatrisi, n)

'************************************************* *********************
__________________