我正在开发一个ASP/c#网页表单,其中我也使用JQuery。我遇到了一个需要打电话的场景。来自JQuery的C#函数。为此,我发现c#中的函数必须是静态方法(web方法)。
问题是,我需要访问所有的变量,数组,等等,我用来填充一些数据,而这些都不是声明的c变量。另外,在web方法中,我需要重用一些不是静态的函数。最后,我逐渐将所有的方法和变量都改为静态。
我想知道我采取的方法是否正确,使用静态变量/方法是否存在陷阱,以及简单地说,静态/非静态之间的区别是什么。
发布于 2018-12-17 04:58:05
静态变量可以通过使用类名直接调用,例如
public class IhaveStatic
{
public static string Hello = "Hello I am A";
}
当你使用静态时,这意味着它将在你的进程的生命周期中一直存在于内存中。
现在考虑另一个类,如
public class IhaveNoStatic
{
public string Hello = "Hello I am B"
}
public class C
{
Console.WriteLine(IhaveStatic.Hello); // Correct
IhaveNoStatic obj = new IhaveNoStatic();
Console.WriteLine(obj); // Correct
Console.WriteLine(IhaveNoStatic.Hello); // Compile time error
}
如您所见,您需要创建"IhaveNoStatic“类的对象来访问非静态变量。因此,它将一直保存在内存中,直到该类的实例存在为止。
因此,基本上这是根据您的需求,但在您的程序中使用较少的静态变量是很好的。
https://stackoverflow.com/questions/53806293
复制相似问题