ag = logss_EventAnalyzer.tabEventsString;
ag是一个静态字符串,
logss_EventAnalyzer是一个类,
tabEventString是一个静态字符串数组。
调试期间,我看到logss_EventAnalyzer.tabEventsString包含一些字符串,但它没有分配给ag。它的值是空的。
这里的问题是什么,解决办法是什么?
谢谢!
发布于 2009-03-20 11:42:57
您可以说“在调试期间”;当您分配ag时,logss_EventAnalyzer.tabEventsString[0]是否包含一个(非空)字符串?
注意,赋值并不意味着对tabEventsString[0]的更改将反映在ag中,因为string是不可变的,而对tabEventsString[0]的任何更改实际上都在创建新的字符串。如果您想要这类行为,则需要使用某个类的成员:
public class Foo {
public string Bar {get;set;}
}
static Foo ag;
static Foo[] tabEventsString;
...
ag = logss_EventAnalyzer.tabEventsString[0];
...现在,ag.Bar将永远与tabEventsString[0].Bar相同
还有--您可能有一个名为ag的局部变量吗?这是优先考虑的。
你能贴出代码来演示这个问题的发生吗?
顺便提一下,如果应用程序变得复杂,那么静态字段和数组都有各种相关的复杂性。你可能想考虑重新分解它们。
下列各项运作良好:
static class logss_EventAnalyzer {
static string[] tabEventsString = {"abc","def","ghi"};
static string ag;
static void Main() {
ag = logss_EventAnalyzer.tabEventsString[0];
System.Console.WriteLine(ag);
}
}如果你做的是完全不同的事情,你得给我们一个线索.
https://stackoverflow.com/questions/665770
复制相似问题