C# 变量声明中的问题
在页面加载时,我设置字符串变量C# 变量声明中的问题,c#,asp.net,C#,Asp.net,在页面加载时,我设置字符串变量DB的值,如下所示: protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { String DB = ""; DB = Session["db"].ToString(); } } 我想在另一个方法中使用变量DB(我想把这个值传递给一个方法getpet()): protected void DropDownList2_Selecte
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();
}
}
如何在一个方法中使用另一个方法中声明的变量?此问题是由于变量的范围解析造成的。如果在类中的所有方法中都需要一个变量,请在类级别声明它
对于您的情况,您可以在类级别声明它,并在加载页面中指定一个值,然后在其他地方使用它。如果您在方法的作用域内声明变量,则无法从此作用域之外访问它。尝试在类级别声明它,并在方法中赋值
class YourClass {
protected String DB = "";
protected void firstMethod() {
DB = "whatever you want";
}
protected void secondMethod() {
Console.writeln(DB);
}
}
在页面范围声明变量。像这样
<%@ 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>
字符串DB=null;
受保护的无效页面加载(对象发送方、事件参数e)
{
如果(!IsPostBack)
{
字符串DB=”“;
DB=Session[“DB”].ToString();
}
}
受保护的void DropDownList2\u SelectedIndexChanged(对象发送方,事件参数e)
{
如果(DropDownList2.SelectedItem.Text==“0”)
{
petres d=新的petres();
字符串呈请者=d.getpet();
}
}
...
...
为什么不在类级别而不是方法级别声明变量?@Mamta Dalal您能解释一下如何做吗?您的意思是为变量声明创建一个单独的类,即.cs文件吗?只需在页面加载方法之外声明“String DB”,但仍在包含的类中。这样,它将在您的其他方法的范围内可用。是的,完全按照C McTackney所说的做。这将使它达到班级水平。