GrammarBuilder.Append Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menambahkan elemen tata bahasa ke urutan elemen tata bahasa saat ini.
Overload
Append(String, Int32, Int32) |
Menambahkan frasa berulang ke urutan elemen tata bahasa saat ini. |
Append(GrammarBuilder, Int32, Int32) |
Menambahkan elemen tata bahasa berulang ke urutan elemen tata bahasa saat ini. |
Append(String) |
Menambahkan frasa ke urutan elemen tata bahasa saat ini. |
Append(String, SubsetMatchingMode) |
Menambahkan elemen untuk subset frasa ke urutan elemen tata bahasa saat ini. |
Append(SemanticResultKey) |
Menambahkan kunci semantik ke urutan elemen tata bahasa saat ini. |
Append(SemanticResultValue) |
Menambahkan nilai semantik ke urutan elemen tata bahasa saat ini. |
Append(GrammarBuilder) |
Menambahkan elemen tata bahasa ke urutan elemen tata bahasa saat ini. |
Append(Choices) |
Menambahkan sekumpulan alternatif untuk urutan elemen tata bahasa saat ini. |
Keterangan
Gunakan metode ini untuk menambahkan elemen tata bahasa ke yang sudah ada GrammarBuilder. Saat membuat elemen tata bahasa, Anda dapat menambahkannya ke penyusun yang ada untuk mengembangkan batasan untuk tata bahasa pengenalan ucapan secara progresif. Setiap elemen ditambahkan ke akhir urutan elemen saat ini.
Metode ini memiliki kelebihan beban untuk menambahkan GrammarBuilderobjek , , StringChoices, SemanticResultKey, dan SemanticResultValue .
Penting
Pengenal ucapan dapat melemparkan pengecualian saat menggunakan tata bahasa pengenalan ucapan yang berisi elemen semantik duplikat dengan nama kunci yang sama atau beberapa elemen semantik yang dapat berulang kali memodifikasi nilai elemen semantik yang sama.
Untuk informasi selengkapnya tentang membangun dan menggunakan tata bahasa pengenalan ucapan, lihat Pengenalan Ucapan.
Append(String, Int32, Int32)
- Sumber:
- GrammarBuilder.cs
- Sumber:
- GrammarBuilder.cs
- Sumber:
- GrammarBuilder.cs
Menambahkan frasa berulang ke urutan elemen tata bahasa saat ini.
public:
void Append(System::String ^ phrase, int minRepeat, int maxRepeat);
public void Append (string phrase, int minRepeat, int maxRepeat);
member this.Append : string * int * int -> unit
Public Sub Append (phrase As String, minRepeat As Integer, maxRepeat As Integer)
Parameter
- phrase
- String
Urutan kata yang diulang untuk ditambahkan.
- minRepeat
- Int32
Jumlah minimum pencocokan phrase
input harus terjadi untuk merupakan kecocokan.
- maxRepeat
- Int32
Jumlah maksimum kali pencocokan phrase
input dapat terjadi untuk merupakan kecocokan.
Contoh
Contoh berikut membuat tata bahasa pengenalan ucapan untuk frasa seperti "Panggil James di tempat kerja" dan "Panggil Anne di ponselnya", di mana kata "telepon" bersifat opsional. GrammarBuilder dan Choices objek digunakan untuk membangun tata bahasa. Contoh menyoroti penggunaan Append metode .
public static Grammar CreatePhonePhrase()
{
// Create alternatives for person names, locations, devices, and pronouns.
Choices personChoice = new Choices(new string[] {"Anne", "James", "Mary", "Sam"});
Choices locationChoice = new Choices(new string[] {"home", "work"});
Choices deviceChoice = new Choices(new string[] {"home", "work", "cell"});
Choices pronounChoice = new Choices(new string[] {"his", "her"});
// Create a phrase for the receiving device, which optionally contains the word "phone".
GrammarBuilder devicePhrase = new GrammarBuilder(pronounChoice);
devicePhrase.Append(deviceChoice);
devicePhrase.Append("phone", 0, 1);
// Create alternatives for phrases specifying a device or a location.
GrammarBuilder atLocation = new GrammarBuilder("at");
atLocation.Append(locationChoice);
GrammarBuilder onDevice = new GrammarBuilder("on");
onDevice.Append(devicePhrase);
Choices howChoice = new Choices(new GrammarBuilder[] {atLocation, onDevice});
// Build the final phrase.
GrammarBuilder callWho = new GrammarBuilder("Call");
callWho.Append(personChoice);
callWho.Append(howChoice);
// Create the Grammar object.
Grammar callGrammar = new Grammar(callWho);
callGrammar.Name = "Call Grammar";
return callGrammar;
}
Keterangan
Nilai minRepeat
harus lebih besar dari atau sama dengan 0 dan kurang dari atau sama dengan nilai maxRepeat
.
Lihat juga
Berlaku untuk
Append(GrammarBuilder, Int32, Int32)
- Sumber:
- GrammarBuilder.cs
- Sumber:
- GrammarBuilder.cs
- Sumber:
- GrammarBuilder.cs
Menambahkan elemen tata bahasa berulang ke urutan elemen tata bahasa saat ini.
public:
void Append(System::Speech::Recognition::GrammarBuilder ^ builder, int minRepeat, int maxRepeat);
public void Append (System.Speech.Recognition.GrammarBuilder builder, int minRepeat, int maxRepeat);
member this.Append : System.Speech.Recognition.GrammarBuilder * int * int -> unit
Public Sub Append (builder As GrammarBuilder, minRepeat As Integer, maxRepeat As Integer)
Parameter
- builder
- GrammarBuilder
Elemen tata bahasa berulang untuk ditambahkan.
- minRepeat
- Int32
Jumlah minimum kali input yang cocok dengan elemen yang ditentukan oleh builder
harus terjadi untuk merupakan kecocokan.
- maxRepeat
- Int32
Jumlah maksimum kali input yang cocok dengan elemen yang ditentukan oleh builder
dapat terjadi untuk merupakan kecocokan.
Contoh
Contoh berikut membuat tata bahasa pengenalan ucapan untuk frasa seperti "Panggil James di tempat kerja" dan "Panggil Anne di ponselnya", di mana kata "telepon" bersifat opsional. GrammarBuilder dan Choices objek digunakan untuk membangun tata bahasa. Contoh menyoroti penggunaan Append metode .
public static Grammar CreatePhonePhrase()
{
// Create alternatives for person names, locations, devices, and pronouns.
Choices personChoice = new Choices(new string[] {"Anne", "James", "Mary", "Sam"});
Choices locationChoice = new Choices(new string[] {"home", "work"});
Choices deviceChoice = new Choices(new string[] {"home", "work", "cell"});
Choices pronounChoice = new Choices(new string[] {"his", "her"});
// Create a phrase for the receiving device, which optionally contains the word "phone".
GrammarBuilder devicePhrase = new GrammarBuilder(pronounChoice);
devicePhrase.Append(deviceChoice);
devicePhrase.Append("phone", 0, 1);
// Create alternatives for phrases specifying a device or a location.
GrammarBuilder atLocation = new GrammarBuilder("at");
atLocation.Append(locationChoice);
GrammarBuilder onDevice = new GrammarBuilder("on");
onDevice.Append(devicePhrase);
Choices howChoice = new Choices(new GrammarBuilder[] {atLocation, onDevice});
// Build the final phrase.
GrammarBuilder callWho = new GrammarBuilder("Call");
callWho.Append(personChoice);
callWho.Append(howChoice);
// Create the Grammar object.
Grammar callGrammar = new Grammar(callWho);
callGrammar.Name = "Call Grammar";
return callGrammar;
}
Keterangan
Nilai minRepeat
harus lebih besar dari atau sama dengan 0 dan kurang dari atau sama dengan nilai maxRepeat
.
Penting
Saat Anda menambahkan GrammarBuilder objek yang berisi SemanticResultValue atau SemanticResultKey instans ke GrammarBuilder objek, pastikan Anda menghindari pembuatan elemen semantik duplikat dengan nama kunci yang sama atau beberapa elemen semantik yang dapat berulang kali memodifikasi Value properti SemanticValue objek. Pengenal ucapan dapat melemparkan pengecualian jika mengalami keadaan ini.
Lihat juga
Berlaku untuk
Append(String)
- Sumber:
- GrammarBuilder.cs
- Sumber:
- GrammarBuilder.cs
- Sumber:
- GrammarBuilder.cs
Menambahkan frasa ke urutan elemen tata bahasa saat ini.
public:
void Append(System::String ^ phrase);
public void Append (string phrase);
member this.Append : string -> unit
Public Sub Append (phrase As String)
Parameter
- phrase
- String
Urutan kata yang akan ditambahkan.
Keterangan
phrase
ditambahkan ke akhir urutan elemen saat ini.
Lihat juga
Berlaku untuk
Append(String, SubsetMatchingMode)
- Sumber:
- GrammarBuilder.cs
- Sumber:
- GrammarBuilder.cs
- Sumber:
- GrammarBuilder.cs
Menambahkan elemen untuk subset frasa ke urutan elemen tata bahasa saat ini.
public:
void Append(System::String ^ phrase, System::Speech::Recognition::SubsetMatchingMode subsetMatchingCriteria);
public void Append (string phrase, System.Speech.Recognition.SubsetMatchingMode subsetMatchingCriteria);
member this.Append : string * System.Speech.Recognition.SubsetMatchingMode -> unit
Public Sub Append (phrase As String, subsetMatchingCriteria As SubsetMatchingMode)
Parameter
- phrase
- String
Urutan kata yang akan ditambahkan.
- subsetMatchingCriteria
- SubsetMatchingMode
Mode pencocokan yang digunakan tata bahasa untuk mengenali frasa.
Contoh
Contoh berikut membuat tata bahasa pengenalan ucapan untuk setiap SubsetMatchingMode nilai. Misalnya, tata OrderedSubset
bahasa yang dihasilkan mengenali frasa, "tiga empat lima" dan "satu tiga lima", dan tata Subsequence
bahasa mengenali frasa "tiga empat lima", tetapi bukan frasa, "satu tiga lima".
private Grammar[] CreateSubsetMatchTest()
{
List<Grammar> grammars = new List<Grammar>(4);
string phrase = "one two three four five six";
foreach (SubsetMatchingMode mode in
Enum.GetValues(typeof(SubsetMatchingMode)))
{
GrammarBuilder gb = new GrammarBuilder();
gb.Append(phrase, mode);
Grammar grammar = new Grammar(gb);
grammar.Name = mode.ToString();
grammars.Add(grammar);
}
return grammars.ToArray();
}
Keterangan
Elemen subset ditambahkan ke akhir urutan elemen saat ini. Untuk informasi selengkapnya tentang membangun tata bahasa pengenalan ucapan menggunakan string, lihat Menggunakan String untuk Membuat Tata Bahasa GrammarBuilder.
Untuk informasi terperinci tentang penggunaan mode pencocokan subset, lihat System.Speech.Recognition.SubsetMatchingMode.
Lihat juga
Berlaku untuk
Append(SemanticResultKey)
- Sumber:
- GrammarBuilder.cs
- Sumber:
- GrammarBuilder.cs
- Sumber:
- GrammarBuilder.cs
Menambahkan kunci semantik ke urutan elemen tata bahasa saat ini.
public:
void Append(System::Speech::Recognition::SemanticResultKey ^ key);
public void Append (System.Speech.Recognition.SemanticResultKey key);
member this.Append : System.Speech.Recognition.SemanticResultKey -> unit
Public Sub Append (key As SemanticResultKey)
Parameter
Kunci semantik untuk ditambahkan.
Contoh
Contoh berikut adalah bagian dari aplikasi konsol untuk memilih kota asal dan tujuan untuk penerbangan. Aplikasi ini mengenali frasa seperti "Saya ingin terbang dari Miami ke Chicago." Handler untuk SpeechRecognized acara menggunakan SemanticResultKey untuk mengekstrak kode bandara yang ditentukan di SemanticResultValue kota asal dan tujuan.
using System;
using System.Speech.Recognition;
namespace SampleRecognition
{
class Program
{
static void Main(string[] args)
// Initialize an in-process speech recognition engine.
{
using (SpeechRecognitionEngine recognizer =
new SpeechRecognitionEngine())
{
// Create a Choices object and add cities and airport codes
// using SemanticResultValue objects.
Choices cities = new Choices();
cities.Add(new SemanticResultValue("Chicago", "ORD"));
cities.Add(new SemanticResultValue("Boston", "BOS"));
cities.Add(new SemanticResultValue("Miami", "MIA"));
cities.Add(new SemanticResultValue("Dallas", "DFW"));
// Build the phrase and add SemanticResultKeys.
GrammarBuilder chooseCities = new GrammarBuilder();
chooseCities.Append("I want to fly from");
chooseCities.Append(new SemanticResultKey("origin", cities));
chooseCities.Append("to");
chooseCities.Append(new SemanticResultKey("destination", cities));
// Build a Grammar object from the GrammarBuilder.
Grammar bookFlight = new Grammar(chooseCities);
bookFlight.Name = "Book Flight";
// Add a handler for the LoadGrammarCompleted event.
recognizer.LoadGrammarCompleted +=
new EventHandler<LoadGrammarCompletedEventArgs>(recognizer_LoadGrammarCompleted);
// Add a handler for the SpeechRecognized event.
recognizer.SpeechRecognized +=
new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);
// Configure the input to the recognizer.
recognizer.SetInputToDefaultAudioDevice();
// Load the grammar object and start recognition.
recognizer.LoadGrammarAsync(bookFlight);
recognizer.RecognizeAsync();
// Keep the console window open.
Console.ReadLine();
}
}
// Handle the LoadGrammarCompleted event.
static void recognizer_LoadGrammarCompleted(object sender, LoadGrammarCompletedEventArgs e)
{
Console.WriteLine("Grammar loaded: " + e.Grammar.Name);
Console.WriteLine();
}
// Handle the SpeechRecognized event.
static void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
Console.WriteLine("Speech recognized: " + e.Result.Text);
Console.WriteLine();
Console.WriteLine("Semantic results:");
Console.WriteLine(" The flight origin is " + e.Result.Semantics["origin"].Value);
Console.WriteLine(" The flight destination is " + e.Result.Semantics["destination"].Value);
}
}
}
Keterangan
key
ditambahkan ke akhir urutan elemen saat ini.
Penting
Saat Anda menambahkan SemanticResultValue atau SemanticResultKey instans ke GrammarBuilder objek, pastikan Anda menghindari pembuatan elemen semantik duplikat dengan nama kunci yang sama atau beberapa elemen semantik yang dapat berulang kali memodifikasi Value properti SemanticValue objek. Pengenal ucapan dapat melemparkan pengecualian jika mengalami keadaan ini.
Lihat juga
Berlaku untuk
Append(SemanticResultValue)
- Sumber:
- GrammarBuilder.cs
- Sumber:
- GrammarBuilder.cs
- Sumber:
- GrammarBuilder.cs
Menambahkan nilai semantik ke urutan elemen tata bahasa saat ini.
public:
void Append(System::Speech::Recognition::SemanticResultValue ^ value);
public void Append (System.Speech.Recognition.SemanticResultValue value);
member this.Append : System.Speech.Recognition.SemanticResultValue -> unit
Public Sub Append (value As SemanticResultValue)
Parameter
- value
- SemanticResultValue
Nilai semantik untuk ditambahkan.
Contoh
Contoh berikut adalah bagian dari aplikasi konsol untuk memilih kota asal dan tujuan untuk penerbangan. Aplikasi ini mengenali frasa seperti "Saya ingin terbang dari Miami ke Chicago." Handler untuk SpeechRecognized acara menggunakan SemanticResultKey untuk mengekstrak kode bandara yang ditentukan di SemanticResultValue kota asal dan tujuan.
using System;
using System.Speech.Recognition;
namespace SampleRecognition
{
class Program
{
static void Main(string[] args)
// Initialize an in-process speech recognition engine.
{
using (SpeechRecognitionEngine recognizer =
new SpeechRecognitionEngine())
{
// Create GrammarBuilder objects and append SemanticResultValue objects
// that contain cities and airport codes.
GrammarBuilder chicago = new GrammarBuilder();
chicago.Append(new SemanticResultValue("Chicago", "ORD"));
GrammarBuilder boston = new GrammarBuilder();
boston.Append(new SemanticResultValue("Boston", "BOS"));
GrammarBuilder miami = new GrammarBuilder();
miami.Append(new SemanticResultValue("Miami", "MIA"));
GrammarBuilder dallas = new GrammarBuilder();
dallas.Append(new SemanticResultValue("Dallas", "DFW"));
// Create a Choices object and add the cities using implicit conversion from
// SemanticResultValue to GrammarBuilder.
Choices cities = new Choices();
cities.Add(new Choices(new GrammarBuilder[] { chicago, boston, miami, dallas }));
// Build the phrase and add SemanticResultKeys.
GrammarBuilder chooseCities = new GrammarBuilder();
chooseCities.Append("I want to fly from");
chooseCities.Append(new SemanticResultKey("origin", cities));
chooseCities.Append("to");
chooseCities.Append(new SemanticResultKey("destination", cities));
// Build a Grammar object from the GrammarBuilder.
Grammar bookFlight = new Grammar(chooseCities);
bookFlight.Name = "Book Flight";
// Add a handler for the LoadGrammarCompleted event.
recognizer.LoadGrammarCompleted +=
new EventHandler<LoadGrammarCompletedEventArgs>(recognizer_LoadGrammarCompleted);
// Add a handler for the SpeechRecognized event.
recognizer.SpeechRecognized +=
new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);
// Configure the input to the recognizer.
recognizer.SetInputToDefaultAudioDevice();
// Load the grammar object and start recognition.
recognizer.LoadGrammarAsync(bookFlight);
recognizer.RecognizeAsync();
// Keep the console window open.
Console.ReadLine();
}
}
// Handle the LoadGrammarCompleted event.
static void recognizer_LoadGrammarCompleted(object sender, LoadGrammarCompletedEventArgs e)
{
Console.WriteLine("Grammar loaded: " + e.Grammar.Name);
Console.WriteLine();
}
// Handle the SpeechRecognized event.
static void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
Console.WriteLine("Speech recognized: " + e.Result.Text);
Console.WriteLine();
Console.WriteLine("Semantic results:");
Console.WriteLine(" The flight origin is " + e.Result.Semantics["origin"].Value);
Console.WriteLine(" The flight destination is " + e.Result.Semantics["destination"].Value);
}
}
}
Keterangan
value
ditambahkan ke akhir urutan elemen saat ini.
Penting
Saat Anda menambahkan SemanticResultValue atau SemanticResultKey instans ke GrammarBuilder objek, pastikan Anda menghindari pembuatan elemen semantik duplikat dengan nama kunci yang sama atau beberapa elemen semantik yang dapat berulang kali memodifikasi Value properti SemanticValue objek. Pengenal ucapan dapat melemparkan pengecualian jika mengalami keadaan ini.
Lihat juga
Berlaku untuk
Append(GrammarBuilder)
- Sumber:
- GrammarBuilder.cs
- Sumber:
- GrammarBuilder.cs
- Sumber:
- GrammarBuilder.cs
Menambahkan elemen tata bahasa ke urutan elemen tata bahasa saat ini.
public:
void Append(System::Speech::Recognition::GrammarBuilder ^ builder);
public void Append (System.Speech.Recognition.GrammarBuilder builder);
member this.Append : System.Speech.Recognition.GrammarBuilder -> unit
Public Sub Append (builder As GrammarBuilder)
Parameter
- builder
- GrammarBuilder
Elemen tata bahasa yang akan ditambahkan.
Contoh
Contoh berikut membuat tata bahasa pengenalan ucapan untuk frasa seperti "Panggil James di tempat kerja" dan "Panggil Anne di ponselnya", di mana kata "telepon" bersifat opsional. GrammarBuilder dan Choices objek digunakan untuk membangun tata bahasa. Contoh menyoroti penggunaan Append metode .
public static Grammar CreatePhonePhrase()
{
// Create alternatives for person names, locations, devices, and pronouns.
Choices personChoice = new Choices(new string[] {"Anne", "James", "Mary", "Sam"});
Choices locationChoice = new Choices(new string[] {"home", "work"});
Choices deviceChoice = new Choices(new string[] {"home", "work", "cell"});
Choices pronounChoice = new Choices(new string[] {"his", "her"});
// Create a phrase for the receiving device, which optionally contains the word "phone".
GrammarBuilder devicePhrase = new GrammarBuilder(pronounChoice);
devicePhrase.Append(deviceChoice);
devicePhrase.Append("phone", 0, 1);
// Create alternatives for phrases specifying a device or a location.
GrammarBuilder atLocation = new GrammarBuilder("at");
atLocation.Append(locationChoice);
GrammarBuilder onDevice = new GrammarBuilder("on");
onDevice.Append(devicePhrase);
Choices howChoice = new Choices(new GrammarBuilder[] {atLocation, onDevice});
// Build the final phrase.
GrammarBuilder callWho = new GrammarBuilder("Call");
callWho.Append(personChoice);
callWho.Append(howChoice);
// Create the Grammar object.
Grammar callGrammar = new Grammar(callWho);
callGrammar.Name = "Call Grammar";
return callGrammar;
}
Keterangan
builder
ditambahkan ke akhir urutan elemen tata bahasa saat ini.
Catatan
Saat Anda menambahkan GrammarBuilder objek yang berisi SemanticResultValue atau SemanticResultKey instans ke GrammarBuilder objek, pastikan Anda menghindari pembuatan elemen semantik duplikat dengan nama kunci yang sama atau beberapa elemen semantik yang dapat berulang kali memodifikasi Value properti SemanticValue objek. Pengenal ucapan dapat melemparkan pengecualian jika mengalami keadaan ini.
Lihat juga
Berlaku untuk
Append(Choices)
- Sumber:
- GrammarBuilder.cs
- Sumber:
- GrammarBuilder.cs
- Sumber:
- GrammarBuilder.cs
Menambahkan sekumpulan alternatif untuk urutan elemen tata bahasa saat ini.
public:
void Append(System::Speech::Recognition::Choices ^ alternateChoices);
public void Append (System.Speech.Recognition.Choices alternateChoices);
member this.Append : System.Speech.Recognition.Choices -> unit
Public Sub Append (alternateChoices As Choices)
Parameter
- alternateChoices
- Choices
Set alternatif untuk ditambahkan.
Contoh
Contoh berikut membuat tata bahasa pengenalan ucapan untuk frasa seperti "Panggil James di tempat kerja" dan "Panggil Anne di ponselnya", di mana kata "telepon" bersifat opsional. Contoh menyoroti penggunaan Append metode .
public static Grammar CreatePhonePhrase()
{
// Create alternatives for person names, locations, devices, and pronouns.
Choices personChoice = new Choices(new string[] {"Anne", "James", "Mary", "Sam"});
Choices locationChoice = new Choices(new string[] {"home", "work"});
Choices deviceChoice = new Choices(new string[] {"home", "work", "cell"});
Choices pronounChoice = new Choices(new string[] {"his", "her"});
// Create a phrase for the receiving device, which optionally contains the word "phone".
GrammarBuilder devicePhrase = new GrammarBuilder(pronounChoice);
devicePhrase.Append(deviceChoice);
devicePhrase.Append("phone", 0, 1);
// Create alternatives for phrases specifying a device or a location.
GrammarBuilder atLocation = new GrammarBuilder("at");
atLocation.Append(locationChoice);
GrammarBuilder onDevice = new GrammarBuilder("on");
onDevice.Append(devicePhrase);
Choices howChoice = new Choices(new GrammarBuilder[] {atLocation, onDevice});
// Build the final phrase.
GrammarBuilder callWho = new GrammarBuilder("Call");
callWho.Append(personChoice);
callWho.Append(howChoice);
// Create the Grammar object.
Grammar callGrammar = new Grammar(callWho);
callGrammar.Name = "Call Grammar";
return callGrammar;
}
Keterangan
alternateChoices
ditambahkan ke akhir urutan elemen saat ini.
Penting
Saat Anda menambahkan Choices objek yang berisi SemanticResultValue atau SemanticResultKey instans ke GrammarBuilder objek, pastikan Anda menghindari pembuatan elemen semantik duplikat dengan nama kunci yang sama atau beberapa elemen semantik yang dapat berulang kali memodifikasi Value properti SemanticValue objek. Pengenal ucapan dapat melemparkan pengecualian jika mengalami keadaan ini.