函数调用参数的问题
刚从VB6转到.NET上。在写函数的时候突然发先一个问题。
Public Class Form1
Private Sub writev(ByVal txtstr As String)
txtstr = "fkfls "
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
writev(TextBox1.Text)
End Sub
End Class
以上代码,在按下BUTTON的时候,文本不会发生变化。如果修改成以下代码文本就会变化。
Public Class Form1
Private Sub writev(ByVal txtstr As TextBox)
txtstr.Text = "fkfls "
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
writev(TextBox1)
End Sub
End Class
在VB6的时候,调用参数有 ByVal 和 ByRef的生命,只要是ByVal的,都不会影响到调用参数值的变化。可在NET里,怎么就能变了呢?
[解决办法]
txtstr 是个textbox控件,控件都是传址的,而不是传值的!!!