C# 静态变量 - 范围和持久性

2023-12-13

我刚刚做了一个小实验:

public abstract class MyClass
{
  private static int myInt = 0;

  public static int Foo()
  {
    return myInt;
  }

  public static int Foo(int n)
  {
    myInt = n;
    return bar();
  }

  private static int bar()
  {
    return myInt;
  }
}

然后我跑了:

MessageBox.Show(MyClass.Foo().ToString());
MessageBox.Show(MyClass.Foo(3).ToString());
MessageBox.Show(MyClass.Foo().ToString());
MessageBox.Show(MyClass.Foo(10).ToString());
MessageBox.Show(MyClass.Foo().ToString());

我预期的结果是 0, 3, 0, 10, 0。

令我惊讶的是,我得到了 0、3、3、10、10。

这些变化会持续多久?程序执行的持续时间?函数调用静态方法的持续时间?


他们将持续一段时间应用程序域。对静态变量所做的更改在方法中可见。

MSDN:

如果使用 Static 关键字声明局部变量,则其生存期比声明它的过程的执行时间长。如果该过程位于模块内部,则只要应用程序继续运行,静态变量就会一直存在。

请参阅以下内容了解更多详细信息:

  • C#6 语言规范 - 静态变量
  • C#6 语言规范 - 应用程序启动
  • MSDN:静态变量
  • MSDN:可变生命周期
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 静态变量 - 范围和持久性 的相关文章

  • 以文化中立的方式将字符串拆分为单词

    我提出了下面的方法 旨在将可变长度的文本拆分为单词数组 以进行进一步的全文索引处理 删除停止词 然后进行词干分析 结果似乎不错 但我想听听关于这种实现对于不同语言的文本的可靠性的意见 您会建议使用正则表达式来代替吗 请注意 我选择不使用 S
  • WCF RIA 服务 - 加载多个实体

    我正在寻找一种模式来解决以下问题 我认为这很常见 我正在使用 WCF RIA 服务在初始加载时将多个实体返回给客户端 我希望两个实体异步加载 以免锁定 UI 并且我想利用 RIA 服务来执行此操作 我的解决方案如下 似乎有效 这种方法会遇到
  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • 关于 C++ 转换:参数 1 从“[some_class]”到“[some_class]&”没有已知的转换

    我正在研究 C 并且遇到了一个错误 我不知道确切的原因 我已经找到了解决方案 但仍然想知道原因 class Base public void something Base b int main Base b b something Base
  • 堆栈溢出:堆栈空间中重复的临时分配?

    struct MemBlock char mem 1024 MemBlock operator const MemBlock b const return MemBlock global void foo int step 0 if ste
  • 在 ASP.NET 5 中使用 DI 调用构造函数时解决依赖关系

    Web 上似乎充斥着如何在 ASP NET 5 中使用 DI 的示例 但没有一个示例显示如何调用构造函数并解决依赖关系 以下只是众多案例之一 http social technet microsoft com wiki contents a
  • 使用 WebClient 时出现 System.Net.WebException:无法创建 SSL/TLS 安全通道

    当我执行以下代码时 System Net ServicePointManager ServerCertificateValidationCallback sender certificate chain errors gt return t
  • 将多个表映射到实体框架中的单个实体类

    我正在开发一个旧数据库 该数据库有 2 个具有 1 1 关系的表 目前 我为每个定义的表定义了一种类型 1Test 1Result 我想将这些特定的表合并到一个类中 当前的类型如下所示 public class Result public
  • 使用 Bearer Token 访问 IdentityServer4 上受保护的 API

    我试图寻找此问题的解决方案 但尚未找到正确的搜索文本 我的问题是 如何配置我的 IdentityServer 以便它也可以接受 授权带有 BearerTokens 的 Api 请求 我已经配置并运行了 IdentityServer4 我还在
  • 这些作业之间是否存在顺序点?

    以下代码中的两个赋值之间是否存在序列点 f f x 1 1 x 2 不 没有 在这种情况下 标准确实是含糊不清的 如果你想确认这一点 gcc 有这个非常酷的选项 Wsequence point在这种情况下 它会警告您该操作可能未定义
  • 对现有视频添加水印

    我正在寻找一种用 C 在视频上加水印的方法 就像在上面写文字一样 图片或文字标签 我该怎么做 谢谢 您可以使用 Nreco 视频转换器 代码看起来像 NReco VideoConverter FFMpegConverter wrap new
  • WPF/C# 将自定义对象列表数据绑定到列表框?

    我在将自定义对象列表的数据绑定到ListBox in WPF 这是自定义对象 public class FileItem public string Name get set public string Path get set 这是列表
  • 向现有 TCP 和 UDP 代码添加 SSL 支持?

    这是我的问题 现在我有一个 Linux 服务器应用程序 使用 C gcc 编写 它与 Windows C 客户端应用程序 Visual Studio 9 Qt 4 5 进行通信 是什么very在不完全破坏现有协议的情况下向双方添加 SSL
  • 如何从两个不同的项目中获取文件夹的相对路径

    我有两个项目和一个共享库 用于从此文件夹加载图像 C MainProject Project1 Images 项目1的文件夹 C MainProject Project1 Files Bin x86 Debug 其中有project1 ex
  • 在不是结构方法的函数上实现缓存的惯用方法是什么?

    我有一个像这样的昂贵的功能 pub fn get expensive value n u64 u64 let ret 0 for 0 n expensive stuff ret 并且它经常被用相同的参数调用 它是纯粹的 这意味着它将返回相同
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • 如何将服务器服务连接到 Dynamics Online

    我正在修改内部管理应用程序以连接到我们的在线托管 Dynamics 2016 实例 根据一些在线教程 我一直在使用OrganizationServiceProxy out of Microsoft Xrm Sdk Client来自 SDK
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写

随机推荐

  • 如何从排除另一个元素的元素中获取 html() ?

    抱歉问了一个真正愚蠢的问题 但无论哪种方式都不起作用 div class content BEFORE div class dontgrab div div
  • 如何从json字符串中提取值?

    我有一个文件 其中有一堆列和一个名为jsonstring是字符串类型 其中包含 json 字符串 假设格式如下 key1 value1 key2 level2key1 level2value1 level2key2 level2value2
  • Java 大文件上传抛出 java.io.IOException: Map failed

    我正在使用 Spring 和 Hibernate 并尝试上传大文件 但是当我尝试上传时 超过 150 Mb 那么它会生成错误 例如 Caused by java lang OutOfMemoryError Map failed at sun
  • 在准备好的语句中重用匿名参数

    我正在自定义 hibernate 生成的插入 SQL 但遇到了问题 当 Hibernate 自己生成查询时 它会将数据插入表的前两列 但这会导致数据库错误 因为表的所有四列都是不可为空的 为了正确执行插入 必须将相同的数据插入到新记录的两列
  • 在 opencart 中添加“加”“减”代替“添加到购物车”

    我想用 OpenCart 2 0 1 1 中的 2 个加号和减号按钮替换添加到购物车 现在我无法正确编码减号按钮 我在中添加了加号和减号按钮catalog view theme template module featured tpl并拨打
  • C++ 图像处理库

    我需要一个可以检测图像中的对象的库 使用边缘检测 这与验证码无关 我正在开发一个使用 OCR 且可以在任何屏幕分辨率下工作的 MTGO 机器人 为了使其能够移植到任何屏幕分辨率 我的想法是扫描结果页面上的狭窄范围 玩家拥有的卡牌可以在文本行
  • 转换二维数组

    What is selectMany ToArray 方法 它是一个内置方法吗C 我需要将二维数组转换为一维数组 如果你的意思是jagged array T SelectMany是你的朋友 但是 如果您的意思是矩形的 array T 那么你
  • Android 浏览器上未引发 JavaScript 按键事件

    我创建了一个简单的代码来处理keypress event var counter 0 input on keypress function div text key pressed counter JSFiddle 但移动浏览器 Andro
  • 如何将 html 链接添加到图像标题

    我实际上需要在 longdesc 属性中包含 html 链接 我已经将 Prettyphoto 更改为使用 longdesc 而不是图像标题 但我需要在这些描述中包含 html 链接 我知道字符代码是可能的 我只是不记得那些是什么 Than
  • 如何使用 CMake 生成 Windows DLL 版本信息?

    这非常类似于 如何使用 CMake 生成 Windows DLL 版本控制信息 但我想我可能会再问一次 因为从那以后事情可能发生了变化 使用以下 CMakeLists txt 文件 https github com malaterre GD
  • AsyncTask 取消不起作用

    我正在学习如何取消 asyncTask 因此下面的代码没有用处 我尝试调用 asyncTask 并执行它 然后取消它并执行它 MyAsyncTask asyncTask new MyAsyncTask Log i cancel cancel
  • 使用 python 查找 HTML 代码中的特定注释

    我在 python 中找不到具体的注释 例如 我的主要原因是找到 2 个特定评论中的所有链接 像解析器之类的东西 我尝试过这个Beautifulsoup import urllib over urlopen www gamespot com
  • Java中如何比较int数组? [复制]

    这个问题在这里已经有答案了 当我尝试比较两个 int 数组时 即使它们完全相同 里面的代码if one two 仍然没有被执行 为什么是这样 Object one 1 2 3 4 5 6 7 8 9 Object two 1 2 3 4 5
  • 循环遍历集合中的 jQuery 对象,而不为每次迭代初始化新的 jQuery 对象

    我发现自己一直在这样做 myElements each function index currentHtmltmlElement var currentJqueryElement currentHtmltmlElement Working
  • 在 Lisp 中打印 defstruct

    我在 Lisp 中定义了一个非常简单的数据结构 Data structure for a person defstruct person name nil age 0 siblings nil type list Siblings is a
  • 寻找特定顶点最短路径的好算法

    我正在解决下面描述的问题 并且想不出比尝试每个组的每个顶点的每个排列更好的算法 我得到了一张顶点图 以及一组特定顶点组的列表 目标是找到从特定起始顶点到特定结束顶点的最短路径 并且该路径必须从每个顶点至少经过一个顶点指定的顶点组 图中还存在
  • 使用 python 请求登录 Facebook

    我正在尝试找到一种使用 Python 无需浏览器即可自动登录 Facebook 的方法 我尝试了 请求 库 尝试了几种方法 URL http m facebook com requests get URL auth email protec
  • 带有自定义图片的 Facebook API 帖子链接

    我可以为链接设置自定义图片和标题 现在v2 9已经不可能了 是否有某种不指定 og 标签的解决方法 使用 Facebook Graph v2 8 时 您可以发布链接并显示自定义图像 而不是 og image 这是通过将图片参数添加到挂钩来完
  • 如何在编译时提取没有路径和后缀的源文件名?

    同时使用带 std c11 的 gcc 和带 std c 14 的 g 例如 对于名为src dir Hello cxx它应该扩展到类似以下内容 const char basename Hello or const char basenam
  • C# 静态变量 - 范围和持久性

    我刚刚做了一个小实验 public abstract class MyClass private static int myInt 0 public static int Foo return myInt public static int