2010-11-30 2 views
0

私は奇妙な問題が発生します。私はクラスの新しいインスタンスを作成するとき、私はStackOverflowExcepionを得る:)クラスの新しいインスタンスを作成するときにC#StackOverFlowExceptionが発生する

をここではコードです:例外は事前に

public partial class TwoPlayers501_new : Window 
{ 
    public TwoPlayers501_new() 
    { 
     InitializeComponent(); 

     textBlockPlayer1Name.Text = PlayerChooser.player1Name; 
     textBlockPlayer2Name.Text = PlayerChooser.player2Name; 
    } 
    ... 
} 

ありがとうを発生し、それはおそらくいくつかの種類である

public partial class PlayerChooser : Window 
{ 
public PlayerChooser() 
    { 
     InitializeComponent(); 
     textBoxPlayer1Name.Visibility = Visibility.Hidden; 
     textBoxPlayer2Name.Visibility = Visibility.Hidden; 
     textBoxPlayer3Name.Visibility = Visibility.Hidden; 
     textBoxPlayer4Name.Visibility = Visibility.Hidden; 

    } 

    public static String player1Name; 
    public static String player2Name; 
    public static String player3Name; 
    public static String player4Name; 
    ... 

    PlayerChooser.player1Name = textBoxPlayer1Name.Text; 
    PlayerChooser.player2Name = textBoxPlayer2Name.Text; 
    TwoPlayers501_new twoPlayers501_new = new TwoPlayers501_new(); 
    twoPlayers501_new.Show(); 
    ... 
} 

とクラスとコンストラクタトリビュアリティの...

+3

例外が発生したときにスタックトレースはどのように見えますか? – madisonw

答えて

0

[OK]を、私は地獄が私のプログラムが間違っているかを調べます。 C#コンパイラで何か問題が起こったと思います。私がクラス名からアンダースコアを削除したとき(今はTwoPlayers504Newです)、すべてが正しく動作するようになったからです。

ありがとうございます。

4

あなたは、イベントハンドラを持っていて、そのプロパティに基づいてこれらのプロパティの1つを変更するアクションを実行していますか?かわった?

短いバージョン:問題をデバッグするのに十分な情報がありません。

提案:プログラムをデバッグし、stackoverflowexceptionを取得したら、コールスタックをチェックアウトします。あなたのスタックに無期限に循環するメソッドや一連のメソッドがあると私は思っています。あなた自身に再帰されている

+0

これらの値は一度も入力されず、後で使用されるだけで変更されることはありません。 このようにコメントの下にテキストブロックを配置しようとしました。 公開TwoPlayers501_new() { InitializeComponent(); //textBlockPlayer1Name.Text = PlayerChooser.player1Name; //textBlockPlayer2Name.Text = PlayerChooser.player2Name; } と同じことが発生します。 –

+0

stackoverflow例外は、stackoverflow例外のようですか? –

+0

[外部コード] \t \t PikadoRacunaljka.exe!Pikado_Racunaljka.TwoPlayers501_new.TwoPlayers501_new()ライン32 \t C#の と、この繰り返しスタックがオーバーフローするまで。 行32は です。textBlockPlayer1Name.Text = PlayerChooser.player1Name; –

0

PlayerChooser.player1Name = textBoxPlayer1Name.Text; 
PlayerChooser.player2Name = textBoxPlayer2Name.Text; 

textBlockPlayer1Name.Text = PlayerChooser.player1Name; 
textBlockPlayer2Name.Text = PlayerChooser.player2Name; 
+0

いいえいいえ、textBoxPlayer1Name.TextとtextBlockPlayer1Name.Textがあります。 TextBoxとTextBlock –

+0

この再帰はどのように行われますか? 'int a = b; b = a; 'は再帰しません。 –

+0

申し訳ありません。私はtexBoxとtextBlockを同じものに誤読しました。 –

関連する問題