博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【译】Object Dumper: 函数式程序设计编码中的强大工具
阅读量:6322 次
发布时间:2019-06-22

本文共 1696 字,大约阅读时间需要 5 分钟。

Post in English:

 

  当用函数式程序设计的方式开发C#应用程序时,你经常需要把一个集合输出到控制台。Object dumper在这方面是一个强大的工具。本为中的例子只有很少开发者了解。

  功能的转换通常需要连续的变换:转换集合a=>集合b=>集合c=>最终的集合。这是我的中话题的要点。

  当我准备开发这样一个转换时,我首先在大脑中完成了这样一个转换的模型。有时候(特别是编写临时的转换时)我不会在编码之前完整的设计出每一个转换。例如,当源集合特别麻烦时,我先将它转变为简单明了的数据,再将其转换进一个有用的格式,为随后的转换做准备。有时我将其转换为匿名类型,有时我马上就知道我要将其转换为命名的类型。无论我选择那种方式,在我写下一个转换之前验证上一个转换是否正确时,Object Dumper将会是一个很好的工具。

  捎带提一下:我写这些转换的时候通常不经常用调试器。我写一个转换,验证其结果,写下一个转换,再验证,以此类推……粗略估计,使用调试器并不总是方便的。不过我并不担心它,只用Object Dumper就好了。

  要用它,只需要在你的项目中加入ObjectDumper.cs。

  最简单的用法,你可以简单的的传入任何对象给ObjectDumper:

var z = new{    A = "1",    B = "2"};ObjectDumper.Write(z);

  这段代码将产生以下输出:

A=1     B=2

 

  通常你会有一个嵌套的集合:

var z = new{    Aaa = "Hello",    Bbb = "There",    Ccc = new[] { 1, 2, 3 }};ObjectDumper.Write(z);

 

  输出:

Aaa=Hello       Bbb=There       Ccc=...

  

  这个时侯,查看到嵌套集合中的内容将会非常有用,因此你可以传递一个附加的参数给ObjectDumper ,来告诉它输出嵌套集合的第一层:

var z = new{    Aaa = "Hello",    Bbb = "There",    Ccc = new[] { 1, 2, 3 }};ObjectDumper.Write(z, 1);

 

  这段代码将产生以下输出:

Aaa=Hello       Bbb=There       Ccc=...

  Ccc: 1
  Ccc: 2
  Ccc: 3
 

你可以在随Visual Studio 2008一起安装的CSharpSamples.zip文件中找到Object Dumper。

C:\Program Files\Microsoft Visual Studio 9.0\Samples\1033\CSharpSamples.zip

因为我要做很多SharePoint和Hyper-V的开发,我的开发计算机上运行着64为的Windows Server 2008,因此就我来说,CSharpSamples.zip的位置是:

C:\Program Files (x86)\Microsoft Visual Studio 9.0\Samples\1033\CSharpSamples.zip

 -----------------------原文完------------------------------

【因水平有限,错误在所难免,欢迎批评指正!】

除了原作者所说的方式,你还可以通过一下方式获得ObjectDumper:

1.NuGet

Install-Package ObjectDumper

2.在CodePlex站点下载

如果认为此文对您有帮助,别忘了支持一下哦!

作者:
来源:
声明:本博客原创文字只代表本人工作中在某一时间内总结的观点或结论,与本人所在单位没有直接利益关系。非商业,未授权,贴子请以现状保留,转载时必须保留此段声明,且在文章页面明显位置给出原文连接。
转载:http://www.cnblogs.com/youring2/archive/2012/06/06/2539019.html
你可能感兴趣的文章
Jenkins
查看>>
segment
查看>>
面试/编程
查看>>
打造一个上传图片到图床利器的插件(Mac版 开源)
查看>>
thinkphp判断更新是否成功
查看>>
高效使用jquery之一:请使用'On'函数
查看>>
sessionKey
查看>>
iOS8 Push Notifications
查看>>
各大名企笔试及面经大全(程序猿必读)
查看>>
轨磁条简介
查看>>
如何设计高扩展的在线网页制作平台
查看>>
云服务正在吞噬世界!
查看>>
最近话题火爆的四件事你知道不?
查看>>
SpringBoot整合MyBatis
查看>>
Android 类库书签更新(一)
查看>>
Unity3D Input按键系统
查看>>
简单的一条SQL,不简单的做事思维 NOT IN 、NOT EXISTS、LEFT JOIN用法差别 ...
查看>>
DataWorks:任务未运行自助排查
查看>>
「镁客早报」特斯拉裁员,马斯克解释没有办法;微软推出Azure DevOps赏金计划...
查看>>
centos 7.4 使用 pgxc_ctl 安装与使用
查看>>