我有一个按顺序显示颜色的课程
public class Color
{
private static string[] _colors = {"Red", "Green", "Blue"};
public static int Index { get; set; }
public static string GetNextColor()
{
var retVal = _colors[Index];
Index++;
return retVal;
}
}
我通过以下代码使用上述类:
[HttpGet]
public string TestColor()
{
Color.Index = 0;
return string.Format("First color: {0} Second color: {1} Third color: {2}", Color.GetNextColor(), Color.GetNextColor(), Color.GetNextColor());
}
显示此结果
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">
First color: Red Second color: Green Third color: Blue
</string>
现在我的问题是
如何在每次重新加载页面时将索引重置为0,而不将其重置为Color.Index = 0;
根据我的知识,静态字段只能通过app restart重置,因此在我的应用程序中,每次调用此静态方法时,我总是被迫将索引重置为0。我只想要这个领域&#34;索引&#34;每次页面重新加载时重置为0。我不确定是否可以避免为我的代码的每个顶部设置Color.Index = 0
。
答案 0 :(得分:0)
如果您想要一个随每个页面请求重置的变量,您应该将其作为成员变量而不是静态变量。您的视图,控制器,模型和管道对象都被拆除,并为每个HTTP请求重新创建,因此它会自动重置颜色。
如果您坚持使用静态变量,只需向Application_BeginRequest添加一行代码即可将其设置为0。