使用静态变量和方法与非静态

时间:2018-12-16 20:41:47

标签: c# jquery asp.net

我正在开发一个也在使用JQuery的ASP / c#网络表单。我遇到了需要打电话的情况。来自JQuery的C#函数。为此,我发现c#中的函数必须是静态方法(网络方法)。

问题是我需要访问用于填充某些数据的所有变量,数组等,而这些变量未声明为c变量。另外,从Web方法中,我需要重用一些非静态的功能。我最终只是将所有方法和变量都更改为静态。

我想知道我采用的方法是否正确,使用静态变量/方法是否有任何陷阱,以及用简单的话来说静态/非静态之间有什么区别。

1 个答案:

答案 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 ”的对象才能访问非静态变量。因此,它将一直存在内存中,直到存在该类的实例为止。

因此,基本上这是您的要求,但是最好在程序中使用较少的静态变量。