WF4.0 Beta2中的Switch<T>是什么
导读:本文共1383字符,通常情况下阅读需要5分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 对于微软的WF工作流,很多开发人员都有过接触。对于新版的WF4.0 Beta2,有许多新特性值得我们去开发和体验。这些新特性能给我们带来事半功倍的效果。Switch<T>是WF4.0中新增的活动。功能类似于C#语言中的Switch语句,但是C#的Switch语句只能是一般的Int,String等类型。在WF4.0中Switch<T>可以使... ...
目录
(为您整理了一些要点),点击可以直达。对于微软的WF工作流,很多开发人员都有过接触。对于新版的WF4.0 Beta2,有许多新特性值得我们去开发和体验。这些新特性能给我们带来事半功倍的效果。
Switch<T>是WF4.0中新增的活动。功能类似于C#语言中的Switch语句,但是C#的Switch语句只能是一般的Int,String等类型。在WF4.0中Switch<T>可以使用
用于自定义的复杂类型。下面例子完成根据不同的Person执行不同的分支。
1.下面是Person类,在Person类中我们必须要重写Equals方法和GetHashCode方法,代码如下:
[TypeConverter(typeof(PersonConverter))]publicclassPerson{publicstringName{get;set;}publicintAge{get;set;}publicPerson(){this.Age=15;}publicPerson(stringname,intage){this.Name=name;this.Age=age;}publicPerson(stringname):this(){this.Name=name;}publicoverrideboolEquals(objectobj){Personperson=objasPerson;if(person!=null){returnstring.Equals(this.Name,person.Name);}returnfalse;}publicoverrideintGetHashCode(){if(this.Name!=null){returnthis.Name.GetHashCode();}return0;}}
2.TypeConverter 类是.NET提供的类型换器 就是将一种类型(object,可以说是任何类型)转换到另一种类型(一般为string),或者将另一种类型转换回来。
我们实现上面的Person的PersonConverter,如下:
publicclassPersonConverter:TypeConverter{publicoverrideboolCanConvertFrom(ITypeDescriptorContextcontext,TypesourceType){return(sourceType==typeof(string));}publicoverrideobjectConvertFrom(ITypeDescriptorContextcontext,CultureInfoculture,objectvalue){if(value==null){returnnull;}if(valueisstring){returnnewPerson{Name=(string)value};}returnbase.ConvertFrom(context,culture,value);}publicoverrideobjectConvertTo(ITypeDescriptorContextcontext,CultureInfoculture,objectvalue,TypedestinationType){if(destinationType==typeof(string)){if(value!=null){return((Person)value).Name;}else{returnnull;}}returnbase.ConvertTo(context,culture,value,destinationType);}}
3.工作流设计如下:
3.1.定义一个Person类型的变量p1,Scope为Sequence。
3.2.工作流设计中首先是一个Assign活动来实例化p1,然后在Switc<Person>中根据p1的不同值来判断走不同的分支。
3.3.运行程序结果为:Hello Cary。
</div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
WF4.0 Beta2中的Switch<T>是什么的详细内容,希望对您有所帮助,信息来源于网络。