文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-06-17 20:51

关注

这篇文章将为大家详细讲解有关WF4.0 Beta2中的Switch<T>是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

对于微软的WF工作流,很多开发人员都有过接触。对于新版的WF4.0 Beta2,有许多新特性值得我们去开发和体验。这些新特性能给我们带来事半功倍的效果。

Switch<T>是WF4.0中新增的活动。功能类似于C#语言中的Switch语句,但是C#的Switch语句只能是一般的Int,String等类型。在WF4.0中Switch<T>可以使用
用于自定义的复杂类型。下面例子完成根据不同的Person执行不同的分支。

下面是Person类,在Person类中我们必须要重写Equals方法和GetHashCode方法,代码如下:

[TypeConverter(typeof(PersonConverter))]      public class Person      {          public string Name { get; set; }          public int Age { get; set; }           public Person()          {              this.Age = 15;          }           public Person(string name, int age)          {              this.Name = name;              this.Age = age;          }           public Person(string name) : this()          {              this.Name = name;          }           public override bool Equals(object obj)          {              Person person = obj as Person;              if (person != null)              {                  return string.Equals(this.Name, person.Name);              }              return false;          }           public override int GetHashCode()          {              if (this.Name != null)              {                  return this.Name.GetHashCode();              }              return 0;          }      }

TypeConverter 类是.NET提供的类型换器 就是将一种类型(object,可以说是任何类型)转换到另一种类型(一般为string),或者将另一种类型转换回来。
我们实现上面的Person的PersonConverter,如下:

public class PersonConverter : TypeConverter      {          public override bool CanConvertFrom(ITypeDescriptorContext context,Type sourceType)          {              return (sourceType == typeof(string));          }                    public override object ConvertFrom(ITypeDescriptorContext context,CultureInfo culture, object value)          {              if (value == null)              {                  return null;              }              if (value is string)              {                  return new Person                  {                      Name = (string)value                  };              }              return base.ConvertFrom(context, culture, value);          }                    public override object ConvertTo(ITypeDescriptorContext context,CultureInfo culture,                                          object value, Type destinationType)          {              if (destinationType == typeof(string))              {                  if (value != null)                  {                      return ((Person)value).Name;                  }                  else                 {                      return null;                  }              }              return base.ConvertTo(context, culture, value, destinationType);          }      }

工作流设计如下:

1.定义一个Person类型的变量p1,Scope为Sequence。

2.工作流设计中首先是一个Assign活动来实例化p1,然后在Switc<Person>中根据p1的不同值来判断走不同的分支。

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

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

关于“WF4.0 Beta2中的Switch<T>是什么”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯