局部变量

c# – 为什么不能使用Reflection来获取局部变量名?

如果我有这样的代码:我可以得到在Main中声明的局部变量:这返回一个IList而LocalVariableInfo只有三个属性:IsPinned,LocalIndex和LocalType.so,没有Name属性存在.我想知道的是,您可以在生成的IL代码中看到变量名称:但是不可能使用Reflection来获取它们.因为本地变量没有名称,并且只能由它们的索引访问,或者因为这样的功能不是实施?

c# – 通过另一个线程将局部变量修改为null,这怎么可能

当我正在研究框架的并行性时,我遇到了一个奇怪的情况,我无法想象为什么!据我所知,这个人在这里被认为是一个局部变量,如果我们进入foreach块,所以我们已经成功迭代了personList,所以在任何情况下或任何并行场景中人都不应该为null.即使personList被另一个线程更改,或者被引用的人被处置,person变量也应该具有值.因为没有人可以更改引用此人的位置.是否有任何情况可以解释这种情况?

在特定时间C#(Windows服务)每天执行方法的代码失败

我有这个代码每天凌晨5点执行Windows服务的方法:编辑:我希望服务在下一个5点执行,之后每24小时执行一次.方法MethodToExecute()确实在当天5点执行,但第二天它无法执行.此外,似乎我第一次执行它并不重要,但似乎服务在一段时间后进入休眠状态并且不执行,所以如果5点到达而不是当天,但是第二天,它将无法执行.有谁知道什么可能是错的?

为什么C#和C使用_编码习惯?

我看到太多C#和C代码,其中变量命名约定似乎要求程序员在变量的文本之前使用下划线写入变量名.e.gr.支持该公约的理由是什么?解决方法在C#中,我通常使用_专用字段前缀,但不能使用局部变量.背后的理由是,当我需要一个私有变量我键入_并且Intellisense过滤列表,它更容易找到.这样我也可以区分私有和局部变量,我不再需要为类字段键入this.variablename,而只需要_variablename.

c# – 无法分配隐式类型的局部变量

我想从数据表dt_branches_global中选择一个字段,如果radioButton_QP为Checked,那么Data表将包含一个字符串字段,否则数据表包含一个int字段.这就是我在做的事情.但是我在初始化变量Var时遇到错误.解决方法编译器仍然是强类型的,因此需要弄清楚类型.编译器无法推断您将其分配为null的类型.然后你尝试将它分配给两种不同的类型.一个int数组和一个字符串数组.尝试类似的东西:

c# – 多线程,lambdas和局部变量

我的问题是,在下面的代码中,我可以确定实例方法将访问我认为它们将要的变量,还是可以在我还在工作时由另一个线程更改?封闭是否与此有关,即我将处理IEnumerable的本地副本了.所以枚举是安全的吗?为了解释我的问题,如果我从不写共享变量,是否需要任何锁定?

delphi – 局部变量和TPair阵列 – 内存分配的奇怪行为

我有以下代码示例编译在delphixe5update2中.如果我运行它,它会显示变量的地址.变量i和t在buf的内存范围内具有地址!当ireaches3时,赋值buf[i].Value:=0;覆盖i的前3个字节和t的最后一个字节.这导致无限循环,因为当它达到3时,我得到重置为0.如果我用SetLength自己分配内存;一切安好.图片显示了我的意思.我的设置:>Windows764位>DelphiXE5Update2>调试配置32位奇怪,不是吗?有人可以重现吗?是delphi编译器中的错误吗?

delphi – 在嵌套方法中访问时由闭包捕获破坏的局部变量

我设法将此问题减少到:从嵌套方法中访问时,captureString变量在这里被破坏.Win32编译引发EIntOverflow,Win64编译写出一个(损坏的)空字符串–可以通过某种操作将构建引入AV或其他异常,但在所有情况下,在进入嵌套过程时对本地变量的引用都会被破坏.这似乎只有在闭包中捕获captureString时才会发生.出了什么问题?

Delphi访问冲突分配局部变量

我完全失去了.解决方法读取地址00000008意味着您正在读取一个与nil指针相差8个字节的变量.这根本不适合你在这里尝试做的事情,因为你正在写作,而不是阅读,而你正在编写一个常量,而不是从某个地方读取的变量.你确定这是触发异常的实际行吗?您是否尝试过将此行移至程序的顶部?没有你真正的代码在我面前很难确定,但如果我不得不猜测,我会说这之前的行导致了异常,然后指令指针已经增加,所以Delphi突出显示下一行.