我正在开发一个也在使用JQuery的ASP / c#网络表单。我遇到了需要打电话的情况。来自JQuery的C#函数。为此,我发现c#中的函数必须是静态方法(网络方法)。
问题是我需要访问用于填充某些数据的所有变量,数组等,而这些变量未声明为c变量。另外,从Web方法中,我需要重用一些非静态的功能。我最终只是将所有方法和变量都更改为静态。
我想知道我采用的方法是否正确,使用静态变量/方法是否有任何陷阱,以及用简单的话来说静态/非静态之间有什么区别。
答案 0 :(得分:0)
静态变量可以通过使用类名直接调用,例如
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 ”的对象才能访问非静态变量。因此,它将一直存在内存中,直到存在该类的实例为止。
因此,基本上这是您的要求,但是最好在程序中使用较少的静态变量。