WF4.0 Beta2中的Switch<T>是什么(云服务器、云主机、高防IP、高防服务器、香港服务器、美国服务器,编程语言)

时间:2024-05-02 19:12:13 作者 : 石家庄SEO 分类 : 编程语言
  • TAG :

对于微软的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的不同值来判断走不同的分支。

WF4.0 Beta2中的Switch<T>是什么

3.3.运行程序结果为:Hello Cary。

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:WF4.0 Beta2中的Switch&lt;T&gt;是什么的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:php手册怎么理解下一篇:

6 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18