重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
C返回局部变量的值也没问题啊
成都创新互联是一家专业提供吉利企业网站建设,专注与成都网站建设、做网站、H5技术、小程序制作等业务。10年已为吉利众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。
只是如果这个局部变量是指向栈上的内存的指针,由于函数结束后活动栈被清空,会导致指针失效。
VB.NET不支持指针语法,它不可能返回指向栈上的指针,所以用不着担心这个问题。
你的理解
第一点理解是正确的,不过和这个问题关系不大。因为引用类型本来就不是分配在栈上的,它当然就不受函数的影响。
第二点,那个只是个语法问题。VB6没有Return语句,所以它必然有另外一种语法来表明函数的返回值。这个和函数能否返回正确的对象没有关系,就是一种表明函数返回值的语法。
编译器确实定义了一个和函数同名的变量,那个变量就是一个普通的局部变量,作用域就在函数的局部域里。这个变量没什么特别的,就是编译器会在函数结束时把这个变量的值作为函数的返回值返回而已。
protected void Button1_Click(object sender, EventArgs e)
{
if (TextBox1.Text == "" || TextBox2.Text == "")
{
Response.Write("scriptalert('用户名或密码不能为空!')/script"); //提示对话框
}
else
{
string ConStr = "server=(local);user id=sa;pwd=123456;database=userdb";
SqlConnection con = new SqlConnection(ConStr);
string SqlStr = "select * from mymember where sname = '" + TextBox1.Text + "' and spwd = '" + TextBox2.Text + "'"; //Select查询语句
SqlDataAdapter ada = new SqlDataAdapter(SqlStr, con);
con.Open(); //打开连接
DataSet ds = new DataSet();
ada.Fill(ds);
if (ds.Tables[0].Rows.Count 0)
{
Session["username"] = TextBox1.Text;
Response.Redirect("index.aspx");
}
else
{
Response.Write("scriptalert('用户名或密码错误,请重新登录!')/script");
}
} //绑定GridView控件
}
你的 sub过程这个是子过程,无返回值的,这里Form1_Load中b仍然 b=""
如果你想b="注释",将你的sub过程改成自定义函数,用b来接收返回值就行了,代码如下
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim a As String = "rem"
Dim b As String = ""
b = sub过程(b, a)
Me.Text = b '为什么“b”不是等于 "注释"
End Sub
Private Function sub过程(ByVal 输出 As String, ByRef 输入 As String) As String
If 输入 = "rem" Then
输出 = "注释"
End If
Return 输出
End Function
me.dispose()
楼主针对这个问题我也纠结过很久不过就在刚刚我找到了问题所在:
还是用me.close()
打开 项目 》 最下面一行有一个属性》 应用程序》下面 有一个关机模式 改为:当最后一个窗体关闭时。。。注意 me.close要写在窗体show()后面
例如
写成
f2.show()
me.close()
不要写成
me.close()
f2.show()
哈哈简单哪
第一步:登陆网页代码
第二步:登陆以后判断是否登陆成功
有两种方法:1.获取网页代码,判断网页字符有无”登陆成功”字样
源代码:
2.就是判断网页是否跳转到了某一页
源代码:
两种方法结合起来用,可以判断网页是否无法连接