Nasıl yapılır: Durum Makinesi İş Akışı Oluşturma
İş akışları hem yerleşik etkinliklerden hem de özel etkinliklerden oluşturulabilir. Bu konu, hem etkinlik gibi StateMachine yerleşik etkinlikleri hem de önceki Nasıl yapılır: Etkinlik Oluşturma konusunun özel etkinliklerini kullanan bir iş akışı oluşturma adımlarını gösterir. İş akışı bir sayı tahmin oyunu modeller.
Not
Başlarken öğreticisindeki her konu önceki konulara bağlıdır. Bu konuyu tamamlamak için önce Nasıl yapılır: Etkinlik Oluşturma'yı tamamlamanız gerekir.
İş akışını oluşturmak için
Çözüm Gezgini NumberGuessWorkflowActivities öğesine sağ tıklayın ve Ekle, Yeni Öğe'yi seçin.
Yüklü, Ortak Öğeler düğümünde İş Akışı'nı seçin. İş Akışı listesinden Etkinlik'i seçin.
Ad kutusuna yazın
StateMachineNumberGuessWorkflow
ve Ekle'ye tıklayın.Bir StateMachine etkinliğini Araç Kutusu'nun State Machine bölümünden sürükleyin ve iş akışı tasarım yüzeyindeki Etkinliği buraya bırak etiketine bırakın.
İş akışı değişkenlerini ve bağımsız değişkenlerini oluşturmak için
İş akışını henüz görüntülenmediyse tasarımcıda görüntülemek için Çözüm Gezgini'da StateMachineNumberGuessWorkflow.xaml dosyasına çift tıklayın.
Bağımsız Değişkenler bölmesini görüntülemek için iş akışı tasarımcısının sol alt tarafındaki Bağımsız Değişkenler'e tıklayın.
Bağımsız Değişken Oluştur'a tıklayın.
Ad kutusuna yazın
MaxNumber
, Yön açılan listesinden In'i seçin, Bağımsız değişken türü açılan listesinden Int32'yi seçin ve ardından bağımsız değişkeni kaydetmek için ENTER tuşuna basın.Bağımsız Değişken Oluştur'a tıklayın.
Yeni eklenen bağımsız değişkenin altındaki Ad kutusuna yazın
Turns
, Yön açılan listesinden Dışarı'yı seçin, Bağımsız değişken türü açılan listesinden Int32'yi seçin ve enter tuşuna basın.MaxNumber
Etkinlik tasarımcısının sol alt tarafındaki Bağımsız Değişkenler'e tıklayarak Bağımsız Değişkenler bölmesini kapatın.
Değişkenler bölmesini görüntülemek için iş akışı tasarımcısının sol alt tarafındaki Değişkenler'etıklayın.
Değişken Oluştur'a tıklayın.
İpucu
Değişken Oluştur kutusu görüntülenmiyorsa, iş akışı tasarımcısı yüzeyindeki etkinliğe tıklayarak StateMachine seçin.
Ad kutusuna yazın
Guess
, Değişken türü açılan listesinden Int32'yi seçin ve ardından değişkeni kaydetmek için ENTER tuşuna basın.Değişken Oluştur'a tıklayın.
Ad kutusuna yazın
Target
, Değişken türü açılan listesinden Int32'yi seçin ve ardından değişkeni kaydetmek için ENTER tuşuna basın.Değişkenler bölmesini kapatmak için etkinlik tasarımcısının sol alt tarafındaki Değişkenler'etıklayın.
İş akışı etkinliklerini eklemek için
Seçmek için Durum1'e tıklayın. Özellikler Penceresinde DisplayName değerini olarak
Initialize Target
değiştirin.İpucu
Özellikler Penceresi görüntülenmiyorsa Görünüm menüsünden Özellikler Penceresi'niseçin.
İş akışı tasarımcısında yeni yeniden adlandırılan Hedefi Başlat durumuna çift tıklayarak genişletin.
Bir Assign etkinliğini Araç Kutusu'nun Temel Öğeler bölümünden sürükleyin ve durumun Giriş bölümüne bırakın. Kime kutusuna yazın
Target
ve C# ifadesi girin veya VB ifadesi girin kutusuna aşağıdaki ifadeyi yazın.New System.Random().Next(1, MaxNumber + 1)
new System.Random().Next(1, MaxNumber + 1)
İpucu
Araç Kutusu penceresi görüntülenmiyorsa, Görünüm menüsünden Araç Kutusu'nuseçin.
İş akışı tasarımcısının üst kısmındaki içerik haritası görünümünde StateMachine'e tıklayarak iş akışı tasarımcısında genel durum makine görünümüne dönün.
Araç Kutusu'nun Durum Makinesi bölümünden bir Durum etkinliğini iş akışı tasarımcısına sürükleyin ve Hedef Başlatma durumunun üzerine getirin. Yeni durum üzerindeyken Hedefi Başlat durumunda dört üçgenin görüneceğini unutmayın. Yeni durumu Hedef Başlatma durumunun hemen altındaki üçgene bırakın. Bu, yeni durumu iş akışına yerleştirir ve Hedef Başlatma durumundan yeni duruma bir geçiş oluşturur.
Durum1'e tıklayarak seçin, DisplayName değerini olarak
Enter Guess
değiştirin ve ardından iş akışı tasarımcısındaki duruma çift tıklayarak genişletin.Bir WriteLine etkinliğini Araç Kutusu'nun Temel Öğeler bölümünden sürükleyin ve durumun Entry bölümüne bırakın.
WriteLine'ın Text özellik kutusuna aşağıdaki ifadeyi yazın.
"Please enter a number between 1 and " & MaxNumber
"Please enter a number between 1 and " + MaxNumber
Bir Assign etkinliğini Araç Kutusu'nun Temel Öğeler bölümünden sürükleyin ve durumun Çıkış bölümüne bırakın.
Kime kutusuna yazın ve
Turns + 1
C# ifadesi girin veya VB ifadesi girin kutusuna yazın.Turns
İş akışı tasarımcısının üst kısmındaki içerik haritası görünümünde StateMachine'e tıklayarak iş akışı tasarımcısında genel durum makine görünümüne dönün.
Bir FinalState etkinliğini Araç Kutusu'nun Durum Makinesi bölümünden sürükleyin, Tahmin Gir durumunun üzerine getirin ve Tahmin Girin durumunun sağındaki üçgene bırakın; böylece Enter Guess ile FinalState arasında bir geçiş oluşturulur.
Geçişin varsayılan adı T2'dir. İş akışı tasarımcısında geçişe tıklayarak seçin ve DisplayName değerini Tahmin Doğru olarak ayarlayın. Ardından FinalState'e tıklayıp seçin ve iki durumdan birini kaplamadan tam geçiş adının görüntülenmesine yer olacak şekilde sağa sürükleyin. Bu, öğreticideki kalan adımların tamamlanmasını kolaylaştırır.
İş akışı tasarımcısında yeni yeniden adlandırılan Doğru Tahmin Geçişine çift tıklayarak genişletin.
ReadInt etkinliğini Araç Kutusu'nun NumberGuessWorkflowActivities bölümünden sürükleyin ve geçişin Tetikleyici bölümüne bırakın.
ReadInt etkinliğinin Özellikler Penceresinde,
"EnterGuess"
BookmarkName özellik değeri kutusuna tırnak işaretlerini ekleyin ve Sonuç özellik değeri kutusuna yazınGuess
Tahmin Doğru geçişinin Koşul özellik değeri kutusuna aşağıdaki ifadeyi yazın.
Guess = Target
Guess == Target
İş akışı tasarımcısının üst kısmındaki içerik haritası görünümünde StateMachine'e tıklayarak iş akışı tasarımcısında genel durum makine görünümüne dönün.
Not
Tetikleyici olayı alındığında ve Conditionvarsa olarak değerlendirildiğinde
True
bir geçiş gerçekleşir. Bu geçiş için, kullanıcınınGuess
rastgele oluşturulanTarget
ile eşleşmesi durumunda denetim FinalState'e geçer ve iş akışı tamamlar.Tahminin doğru olup olmadığına bağlı olarak, iş akışının FinalState'e geçmesi veya başka bir deneme için Tahmini Girin durumuna geri dönmesi gerekir. Her iki geçiş de ReadInt etkinliği aracılığıyla kullanıcının tahmininin alınmasını beklerken aynı tetikleyiciyi paylaşır. Bu, paylaşılan geçiş olarak adlandırılır. Paylaşılan bir geçiş oluşturmak için, Tahmin Doğru geçişinin başlangıcını gösteren daireye tıklayın ve istediğiniz duruma sürükleyin. Bu durumda geçiş kendi kendine geçiştir, bu nedenle Tahmin Doğru geçişinin başlangıç noktasını sürükleyin ve Tahmin Girin durumunun en altına geri bırakın. Geçişi oluşturduktan sonra iş akışı tasarımcısında seçin ve DisplayName özelliğini Tahmin Yanlış olarak ayarlayın.
Not
Paylaşılan geçişler, geçiş tasarımcısının alt kısmındaki Paylaşılan tetikleyici geçişi ekle'ye tıklayarak ve ardından Bağlanmak için Kullanılabilir durumlardan istenen hedef durumu seçerek geçiş tasarımcısı içinden de oluşturulabilir.
Not
Bir geçişin değerlendirmesi
false
(veya paylaşılan tetikleyici geçişinin tüm koşulları ) olarak değerlendirilirse Conditionfalse
, geçiş gerçekleşmez ve durumdan tüm geçişler için tüm tetikleyiciler yeniden zamanlanır. Bu öğreticide, koşulların yapılandırılma şekli nedeniyle bu durum gerçekleşemez (tahminin doğru veya yanlış olmasına yönelik belirli eylemlerimiz vardır).İş akışı tasarımcısında Yanlış Tahmin Etme geçişine çift tıklayarak genişletin. Tetikleyicinin zaten Tahmin Doğru geçişi tarafından kullanılan ReadInt etkinliğine ayarlandığını unutmayın.
Koşul özellik değeri kutusuna aşağıdaki ifadeyi yazın.
Guess <> Target
Guess != Target
Bir If etkinliğini Araç Kutusu'nun Denetim Akışı bölümünden sürükleyin ve geçişin Eylem bölümüne bırakın.
If etkinliğinin Koşul özellik değeri kutusuna aşağıdaki ifadeyi yazın.
Guess < Target
Araç Kutusu'nun Temel Öğeler bölümünden iki WriteLine etkinliğini sürükleyin ve bırakın; böylece biri If etkinliğinin Then bölümünde, biri de Else bölümünde olur.
Sonra bölümünde WriteLine etkinliğine tıklayarak seçin ve Text özellik değeri kutusuna aşağıdaki ifadeyi yazın.
"Your guess is too low."
Seçmek için Else bölümündeki WriteLine etkinliğine tıklayın ve Text özellik değeri kutusuna aşağıdaki ifadeyi yazın.
"Your guess is too high."
İş akışı tasarımcısının üst kısmındaki içerik haritası görünümünde StateMachine'e tıklayarak iş akışı tasarımcısında genel durum makine görünümüne dönün.
Aşağıdaki örnekte tamamlanmış iş akışı gösterilmektedir.
İş akışını oluşturmak için
Çözümü derlemek için CTRL+SHIFT+B'ye basın.
İş akışını çalıştırma yönergeleri için lütfen bir sonraki Nasıl yapılır: İş Akışı Çalıştırma konusuna bakın. Nasıl yapılır: farklı bir iş akışı stiliyle İş Akışı Çalıştırma adımını zaten tamamladıysanız ve bu adımda durum makinesi iş akışını kullanarak çalıştırmak istiyorsanız, Nasıl yapılır: İş Akışı Çalıştırma'nın Uygulama oluşturmak ve çalıştırmak için bölümüne atlayın.