私は、音声認識とテキスト読み上げのこのプロジェクトに取り組んでいます。私は3つのスクリプトを持っています.1つはForm.cs
です。もう1つは、テキストを音声に変換するスクリプト(Voice.cs
)と、もう1つの方法はAuxiliary.cs
です。 Voice.cs
の変数は通常通りSpeechSynthesizer synth = new SpeechSynthesizer();
です。他のスクリプトでこのメソッドを呼び出すと、NullReferenceExceptionが発生するのはなぜですか?
そして、私はこのvoid
持っている:私は、私はそれがシンセでNullReferenceException
をスローAuxiliary.cs
からそれを呼び出したとき、それは、良い作品Form.cs
スクリプトでVoice.Say(string)
を呼び出すとき
public void Say(string speech)
{
synth.SpeakAsync (speech);
}
を。
どうしてですか?つまり、フォームスクリプトはまったく同じ方法で呼び出しています。Auxiliary.cs
申し訳ありませんこの質問が既に存在する場合は、サイト全体で検索しましたが、まだ何も出てこなかった。
編集:これはコードです。
//Form1.cs
public partial class Form1 : Form
{
public Auxiliary auxiliary;
public Voice voice;
public void Form1_Load()
{
voice = new Voice();
auxiliary = new Auxiliary();
voice.Say("Hi, Patrick");
}
}
//Auxiliary.cs
public class Auxiliary
{
public Voice voice;
public void Start()
{
voice = new Voice();
voice.Say("Hi");
}
}
//Voice.cs
public class Voice
{
public SpeechSynthesizer synth;
public void Start()
{
synth = new SpeechSynthesizer();
}
public void Say(string speech)
{
synth.SpeakAsync(speech);
}
}
あなたの 'synth'オブジェクトはどこに定義されていますか? – GantTheWanderer
*シンセでnull参照例外をスローしますか? SpeakAsyncを実行しようとしているときにシンセクラスを使用しているシンセクラス内のメソッドの場合と同じですか?デバッガを使って何がヌルであるかを確認して、ヌルでないことを期待しているコードが実行されていない理由を確認できませんか?実際には、あなたが何かを正しく設定していない理由を推測するのに十分な時間を私たちに与えていないのです。 – Chris
[NullReferenceExceptionとは何か、それを修正する方法は?](http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it) ) – Chris