首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用静态变量和方法与非静态变量和方法

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

Stack Overflow用户
提问于 2018-12-17 04:41:47
回答 1查看 60关注 0票数 -2

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

问题是,我需要访问所有的变量,数组,等等,我用来填充一些数据,而这些都不是声明的c变量。另外,在web方法中,我需要重用一些不是静态的函数。最后,我逐渐将所有的方法和变量都改为静态。

我想知道我采取的方法是否正确,使用静态变量/方法是否存在陷阱,以及简单地说,静态/非静态之间的区别是什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-17 04:58:05

静态变量可以通过使用类名直接调用,例如

代码语言:javascript
复制
public class IhaveStatic
{
   public static string Hello = "Hello I am A";
}

当你使用静态时,这意味着它将在你的进程的生命周期中一直存在于内存中。

现在考虑另一个类,如

代码语言:javascript
复制
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“类的对象来访问非静态变量。因此,它将一直保存在内存中,直到该类的实例存在为止。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53806293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档