作者 朱先忠
下面,我們來構建乙個簡單的示例。本示例的目的是,想主要使用while活動實現顯示乙個九九乘法表。
請遵循如下步驟建立乙個控制台順序工作流示例程式:
1. 啟動vs2008,單擊選單」檔案「|」新建「|」專案「,建立乙個名字為whileactivity
的控制台順序工作流示例程式。
2.之後,系統自動開啟工作流設計器介面。
3. 從工具箱中拖動while
活動到圖中右側的漢字提示處,得到如圖所示的情形。
4. 因為是在控制台中顯示乙個九九乘法表,所以,一定要使用乙個二重迴圈來實現這一目的。也就是說,我們要使用乙個巢狀的while活動。另一方面,我們知 道:外層迴圈與內層迴圈變數是存在聯絡的,即在每一次內迴圈執行完成後,要重新進行某種初始化操作。因此,直接在乙個while活動中嵌入乙個while 活動是無法實現既定功能的。
另外需要注意的是,while活動僅允許包括乙個子活動。
但是,還是有解決辦法的,我們可以在while活動中嵌入乙個復合活動,即乙個允許其中繼續包含(可能有多個)子活動的活動,例如並行執行活動(parallel),序列執行活動(sequence),等等。
5. 為此,我們最終得到如下的工作流圖:
static void multiplytable()
* = ", i, j, i * j);
console.writeline("");
}else
console.write(" * = ", i, j, i * j);}}
} 於是,我們會得到如下圖所示的列印效果:
下面,我們也想通過工作流操作實現上圖列印效果。現在來討論活動有關屬性設定及編碼問題。
1. 在本例中,我們要使用規則條件表達內外層迴圈的規則條件。為此,先要定義兩個迴圈變數(以工作流workflow1)的私有欄位的形式存在,如下:
//建立兩個控制內外層迴圈的變數
private int i = 0;
private int j = 1;
2. 單擊外、內層兩個迴圈活動whileactivity1和whileactivity2,分別使用屬性視窗設定
迴圈的規則條件。
以外層迴圈為例,首先需要選擇condition為「宣告性
規則條件
」。然後,在下面的規則命名中輸入名稱c1。典型情況(推薦)下,我們單擊
規則名稱c1右邊的「...」省略號進入到規則表示式定義對話方塊,如圖所示:
然後,你可以單擊「新建」鏈結建立規則表示式(以後也可以使用「編輯」鏈結再修改之)。表示式建立視窗如下所示:
[注意]上面的表示式後面不允許有分號「;」,否則會出現錯誤提示。
3.同樣方式建立
內迴圈活動whileactivity2
的規則條件為:
this.j <= this.i
4. 根據前面的演算法分析,我們要分別建立
內外迴圈活動的
private void codeactivity1_executecode(object sender, eventargs e)
private void codeactivity2_executecode(object sender, eventargs e)
* = ", i, j, i * j);
console.writeline("");
}else
console.write(" * = ", i, j, i * j);
j++;}
5. 下面是完整的工作流類定義**:
using system;
using system.componentmodel;
using system.componentmodel.design;
using system.collections;
using system.drawing;
using system.linq;
using system.workflow.componentmodel.compiler;
using system.workflow.componentmodel.serialization;
using system.workflow.componentmodel;
using system.workflow.componentmodel.design;
using system.workflow.runtime;
using system.workflow.activities;
using system.workflow.activities.rules;
namespace whileactiviity
private void codeactivity1_executecode(object sender, eventargs e)
private void codeactivity2_executecode(object sender, eventargs e)
* = ", i, j, i * j);
console.writeline("");
}else
console.write(" * = ", i, j, i * j);
j++;
}private void codeactivity3_executecode(object sender, eventargs e)}}
自不必贅述了吧。
按f5執行控制台程式,一般順利的話,將得到如下圖所示執行時快照。
工作流程式設計循序漸進(3 While活動)
作者 朱先忠 下面,我們來構建乙個簡單的示例。本示例的目的是,想主要使用while活動實現顯示乙個九九乘法表。請遵循如下步驟建立乙個控制台順序工作流示例程式 1.啟動vs2008,單擊選單 檔案 新建 專案 建立乙個名字為 whileactivity 的控制台順序工作流示例程式。2.之後,系統自動開...
循序漸進學程式設計
軟體開發者是乙個日新月異的領域 it 中的大師,今天的程式設計方式與明天的程式設計或許截然不同,技術在不斷地革新,新語言 新平台的如雨後春筍般出現 更好的解決方案的冒出,因此我們需要跟得上節奏,我們沒有選擇,唯有努力提高自己。下面的幾點建議或許能幫助你成為乙個優秀地開發者。你是否聽說過 kaizen...
IO流循序漸進四
ofstream out d fstream out ofstream out d fstream out fstream in ofstream out d fstream ate ofstream out d fstream trunc 刪除文字後新增 ofstream out d ios at...