在页面加载时,我按如下方式设置String变量DB
的值:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
String DB = "";
DB = Session["db"].ToString();
}
}
我想在另一个方法中使用变量DB
(我希望将此值传递给方法getpet()
):
protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
{
if(DropDownList2.SelectedItem.Text=="0")
{
petres d = new petres();
String petitioner=d.getpet();
}
}
如何在另一种方法中使用在一个方法中声明的变量?
答案 0 :(得分:1)
在Page范围声明变量。像这样。
<%@ Page Language="C#" Debug="true" %>
<script runat="server">
String DB = null;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
String DB = "";
DB = Session["db"].ToString();
}
}
protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
{
if(DropDownList2.SelectedItem.Text=="0")
{
petres d = new petres();
String petitioner=d.getpet();
}
}
</script>
<html>
<head>
...
</head>
<body>
...
</body>
</html>
答案 1 :(得分:0)
此问题是由于变量的范围解析所致。如果您需要类中所有方法的变量,请在类级别声明它。
对于您的情况,您可以在类级别声明它并在Page_load
中指定一个值,然后在其他地方使用它。
答案 2 :(得分:0)
如果在方法范围内声明变量,则无法从此范围外部访问它。尝试在类级别声明它,并在方法中指定值。
class YourClass {
protected String DB = "";
protected void firstMethod() {
DB = "whatever you want";
}
protected void secondMethod() {
Console.writeln(DB);
}
}