2009-03-20 16 views
0

ag = logss_EventAnalyzer.tabEventsString [0];割り当て問題

AGは静的ストリングである、

logss_EventAnalyzerがクラスで、

tabEventStringは、静的文字列配列です。

は、デバッグ時には、私はlogss_EventAnalyzer.tabEventsString [0]いくつかの文字列が含まれていることを見ましたが、それは、Agに代入されていません。値はnullです。

何ここでの問題であり、解決策は何ですか?

ありがとうございます!あなたが質問に行にブレークポイントを持っている場合は

+0

この行はどこですか?関連するクラスを貼り付けることはできますか? – Grzenio

答えて

0

は、agは、割り当てられた値を取得していますか?

私はlogss_EventAnalyzer.tabEventsString[0]前に、あなたのコードのいくつかの他の部分では、あなたが意図せずにnullにagを設定している、または多分あなたはagを代入していると思われるが、非null値を与えています。

あなたはより多くの詳細を与える場合、私はより良い答えを与えることができます。あなたは、「デバッグ時」と言う

1

logss_EventAnalyzer.tabEventsString[0]には、を割り当てると、(nullでない)文字列が含まれますか?割り当てがstring以来、tabEventsString[0]への変更はagに反映されることを意味するものではありません

注意は不変であり、tabEventsString[0]への変更は、実際に新しい文字列を作成しています。あなたはこの種の動作が必要な場合は、いくつかのクラスのメンバを使用する必要があります:今

public class Foo { 
    public string Bar {get;set;} 
} 
static Foo ag; 
static Foo[] tabEventsString; 
... 
ag = logss_EventAnalyzer.tabEventsString[0]; 
... 

ag.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); 
    } 
} 

あなたは私たちに手掛かりを与える必要があるとしている、根本的に異なる何かをやっている場合は...

0

logss_EventAnalyzer.tabEventsStringの最初のエントリがありますヌル値に割り当てられた文字列を含んでいます。どのオブジェクトが1番目のエントリとして追加されているかを確認するには、スタックトレースを参照する必要があります。このオブジェクトはnullに割り当てることができます。

関連する問題