【译】Object Dumper: 函数式程序设计编码中的强大工具

简介:

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

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

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




本文转自齐师傅博客园博客,原文链接:http://www.cnblogs.com/youring2/archive/2012/06/06/2539019.html,如需转载请自行联系原作者

相关文章
|
7月前
|
设计模式 Java 测试技术
软件测试/测试开发/全日制|Page Object模式:为什么它是Web自动化测试的必备工具
软件测试/测试开发/全日制|Page Object模式:为什么它是Web自动化测试的必备工具
GoogleGuava - 第 1 章 基本工具——常见 Object 方法
GoogleGuava - 第 1 章 基本工具——常见 Object 方法
105 0
GoogleGuava - 第 1 章 基本工具——常见 Object 方法
|
XML Oracle 关系型数据库
Oracle EBS数据定义移植工具:Xdf(XML Object Description File)
整理自:http://www.orapub.cn/posts/3296.html http://oracleseeker.com/2009/09/29/about_xml_object_description_file_xdf_of_oracle_database...
1461 0
|
4天前
|
JSON Java Apache
Java基础-常用API-Object类
继承是面向对象编程的重要特性,允许从已有类派生新类。Java采用单继承机制,默认所有类继承自Object类。Object类提供了多个常用方法,如`clone()`用于复制对象,`equals()`判断对象是否相等,`hashCode()`计算哈希码,`toString()`返回对象的字符串表示,`wait()`、`notify()`和`notifyAll()`用于线程同步,`finalize()`在对象被垃圾回收时调用。掌握这些方法有助于更好地理解和使用Java中的对象行为。
|
1月前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
134 4
|
2月前
|
Java
Java Object 类详解
在 Java 中,`Object` 类是所有类的根类,每个 Java 类都直接或间接继承自 `Object`。作为所有类的超类,`Object` 定义了若干基本方法,如 `equals`、`hashCode`、`toString` 等,这些方法在所有对象中均可使用。通过重写这些方法,可以实现基于内容的比较、生成有意义的字符串表示以及确保哈希码的一致性。此外,`Object` 还提供了 `clone`、`getClass`、`notify`、`notifyAll` 和 `wait` 等方法,支持对象克隆、反射机制及线程同步。理解和重写这些方法有助于提升 Java 代码的可读性和可维护性。
113 20
|
4月前
|
Java
【Java基础面试二十】、介绍一下Object类中的方法
这篇文章介绍了Java中Object类的常用方法,包括`getClass()`、`equals()`、`hashCode()`、`toString()`、`wait()`、`notify()`、`notifyAll()`和`clone()`,并提到了不推荐使用的`finalize()`方法。
【Java基础面试二十】、介绍一下Object类中的方法
|
3月前
|
Python
类与面向对象编程(Object-Oriented Programming, OOP)
类与面向对象编程(Object-Oriented Programming, OOP)
25 0
|
4月前
|
前端开发 Java 编译器
【前端学java】java中的Object类和前端中的Object有什么区别(9)
【8月更文挑战第10天】java中的Object类和前端中的Object有什么区别
50 0
【前端学java】java中的Object类和前端中的Object有什么区别(9)