首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >赋值问题

赋值问题
EN

Stack Overflow用户
提问于 2009-03-20 11:35:05
回答 3查看 417关注 0票数 0

ag = logss_EventAnalyzer.tabEventsString;

ag是一个静态字符串,

logss_EventAnalyzer是一个类,

tabEventString是一个静态字符串数组。

调试期间,我看到logss_EventAnalyzer.tabEventsString包含一些字符串,但它没有分配给ag。它的值是空的。

这里的问题是什么,解决办法是什么?

谢谢!

EN

Stack Overflow用户

发布于 2009-03-20 11:42:57

您可以说“在调试期间”;当您分配ag时,logss_EventAnalyzer.tabEventsString[0]是否包含一个(非空)字符串?

注意,赋值并不意味着对tabEventsString[0]的更改将反映在ag中,因为string是不可变的,而对tabEventsString[0]的任何更改实际上都在创建新的字符串。如果您想要这类行为,则需要使用某个类的成员:

代码语言:javascript
运行
复制
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的局部变量吗?这是优先考虑的。

你能贴出代码来演示这个问题的发生吗?

顺便提一下,如果应用程序变得复杂,那么静态字段和数组都有各种相关的复杂性。你可能想考虑重新分解它们。

下列各项运作良好:

代码语言:javascript
运行
复制
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);
    }
}

如果你做的是完全不同的事情,你得给我们一个线索.

票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/665770

复制
相关文章

相似问题

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