Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 指派问题_C# - Fatal编程技术网

C# 指派问题

C# 指派问题,c#,C#,ag=logss_EventAnalyzer.tabEventsString[0] ag是一个静态字符串 logss_EventAnalyzer是一个类 tabEventString是一个静态字符串数组 在调试期间,我看到logss_EventAnalyzer.tabEventsString[0]包含一些字符串,但它没有分配到ag。它的值为空 这里的问题是什么?解决方案是什么 谢谢 当您在所讨论的行上有一个断点时,ag是否分配了一个值 我怀疑在代码的其他部分,您无意中将ag设置为null,或者您

ag=logss_EventAnalyzer.tabEventsString[0]

ag是一个静态字符串

logss_EventAnalyzer是一个类

tabEventString是一个静态字符串数组

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

这里的问题是什么?解决方案是什么


谢谢

当您在所讨论的行上有一个断点时,
ag
是否分配了一个值

我怀疑在代码的其他部分,您无意中将
ag
设置为null,或者您在
logss\u EventAnalyzer之前分配了
ag
。tabEventsString[0]
被赋予了非null值

如果你提供更多的细节,我可以给出更好的答案。

你说“在调试期间”;分配ag时,
logss\u 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]相同


还有-您是否有一个名为
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);
    }
}

如果您正在做一些完全不同的事情,您必须给我们一个线索…

logss_EventAnalyzer.tabEventsString的第一个条目包含一个分配给空值的字符串。您必须查看stacktrace以查看哪个对象被添加为第一个条目。此对象可以为空。

此行在哪里?你能粘贴相关的类吗?