私はこれが簡単だと思いますが、私はオブジェクトの初期化に問題があります。コードを実行するたびに。私は間違いを続けた。私は「「System.NullReferenceException」種類の未処理の例外がWPFBattle.exeで発生しました」」行に27C#初期化オブジェクト
を出会いを初期化する必要があります。 『
だから私は誰かを尋ね、彼らは
教えてくれました』あなたはMainWindowのコンストラクタで遭遇を初期化するのを忘れていましたが、まだ初期化していないのにそれを渡してしまったので、遭遇はnullとして渡され、autobattleを呼び出すことはできません。それはあなたが戦闘のコンストラクタと一緒に新しいキーワードを使用することによって任意のユーザ定義オブジェクトを行うようにそれを初期化します。私はそれをやってみましたが、エラーが続いています。私はなぜそれが動作しているのか分からない。 「私は私のコードの写真を添付しており、任意の助けを大幅にあなたがいるので
public class Combat : ICombat
{
//Combat class
}
encounter = new Combat()//and of course provide necessary parameters if needed
もののを呼び出す必要が出会いを初期化するには
1 namespace WPFBattle
2 {
3
4
5 public partial class MainWindow : Window
6 {
7 private TextBoxStreamWriter consoleWriter;
8 private TextBox outputField;
9 private IList<ICharacter> playerParty = new List<ICharacter>();
10 public ICombat encounter;
11 private CombatThread combatThread;
12
13 public MainWindow()
14 {
15 InitializeComponent();
16
17 // Redirect console
18 consoleWriter = new TextBoxStreamWriter(outputField);
19 Console.SetOut(consoleWriter);
20
21 //creates the two parties
22 List<ICharacter> party = new List<ICharacter>();
23 List<ICharacter> enemy = new List<ICharacter>();
24
25
26
27 //PLACE I NEED TO INITIALIZE MY OBJECT AT
28
29
30 combatThread = new CombatThread(encounter);
31 combatThread.Start();
32 }
33
34 private void textBox_TextChanged(object sender, TextChangedEventArgs e)
35 {
36
37 }
38
39
40 }
41 }
ICombatを継承するクラスはありますか?遭遇=新しいCombat(); – Davatar
@Davatarご回答いただきありがとうございます。最初の写真の添付ファイルには私のCombatThreadコードが含まれていました。 – firmfiasco
@MohitShrivastava私はその質問を以前に見て答えを読んだが、私は自分のコードでそれを実装する方法を見つけることができなかった – firmfiasco