Tho*_*and 3 c# asp.net webforms
我知道当你使用静态变量时,它的值会在所有用户之间共享.
static string testValue = "";
protected void SomeMethod(object sender, EventArgs e)
{
testValue = TextBox1.Text;
string value = TestClass.returnString(TextBox1.Text); // <-- return from a static method
}
Run Code Online (Sandbox Code Playgroud)
因此,在这种情况下,如果一个用户访问网站并将值放入文本框,则testValue当另一个用户在文本框中输入内容时,该字符串将被另一个值覆盖.(我认为?)
我现在有这个班:
public class TestClass
{
public static string returnString(string msg)
{
return msg;
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:如果我使用静态方法,那么该方法的返回值是否也为所有用户共享?或者每个用户总是一个"独特"的价值?
假设这个方法被五个不同的用户调用五次,这个静态方法会返回特定用户输入的值,还是一个用户可能获得另一个用户输入的值?
你的问题是:
我现在的问题是,如果我使用静态方法,那么该方法的返回值是否也为所有用户共享?或者每个用户总是一个"独特"的价值?
答案是,这取决于.使用你的例子:
public class TestClass
{
public static string returnString(string msg)
{
return msg;
}
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,5个不同的用户(很可能)将5个不同的字符串传递给静态方法.因此他们会找回五个不同的字符串.所以对于这种情况:
string value = TestClass.returnString(TextBox1.Text);
Run Code Online (Sandbox Code Playgroud)
每个用户都会收到他们在自己的TextBox中输入的内容.另一方面,如果代码是这样的:
string value = TestClass.returnString(testValue);
Run Code Online (Sandbox Code Playgroud)
他们都会回来在返回时发生在静态字符串中的事情.
所以要记住的规则是:
| 归档时间: |
|
| 查看次数: |
3643 次 |
| 最近记录: |