本文转载:http://www.cnblogs.com/JustRun1983/archive/2012/05/13/2497997.html

net中的匿名类型非常好用, 
但是开发中遇到一个问题,当把匿名类型作为返回值的时候,会变成object类型,如果才能再转换能对应的匿名类型呢?

// 返回匿名类型的函数, 会转换成object类型
object ReturnAnonymous() {
return new { City="Prague", Name="Tomas" };
} void Main()
{
// 调用方法,获取object对象
object o = ReturnAnonymous();
//使用定义的Cast函数,再转换成我们需要的匿名类型对象
var typed = Cast(o, new { City="", Name="" });
Console.WriteLine("{0}, {1}", typed.City, typed.Name)
} // Cast方法执行转换
T Cast<T>(object obj, T type) {
return (T)obj;
}

  

建议封装一个扩展方法使用;

public static class Extension
    {

public static T ChangeType<T>(this object obj, T t)
        {
            return (T)obj;
        }

}

匿名类型和Object转换的更多相关文章

  1. vb.net的String类型和Bytes转换(C#也适用)

    1.Bytes---->StringSystem.Text.Encoding.Unicode.GetString(bytes, 0, bytes.Length) 2.String----> ...

  2. SQL数据类型和C#数据类型间的转换

    今天看到SQL数据类型和C#数据类型间的转换,前人留下的. <?xml version="1.0" encoding="utf-8" ?> < ...

  3. DataTable转换成匿名类的List类型

    DataTable转换成匿名类的List类型   因为匿名类是不能够 Activator.CreateInstance进行反射实例化的 /// <summary> /// 匿名类的转换方式 ...

  4. c# 把一个匿名对象赋值给一个Object类型的变量后,怎么取这个变量? c# dynamic动态类型和匿名类 详解C# 匿名对象(匿名类型)、var、动态类型 dynamic 深入浅析C#中的var和dynamic

    比如有一个匿名对象,var  result =......Select( a=>new {  id=a.id, name=a.name});然后Object  obj =  result ;我怎 ...

  5. 关于匿名类无法转换为object

    缘由,不能在Razor中使用匿名类, 先事先封装了一个方法,用于Razor给cshtml模板返回页面. 在ashx一般处理程序中,是这样调用的 匿名类的格式如下:(只看格式,不看具体内容) 调用这样 ...

  6. Java中int类型和tyte[]之间转换及byte[]合并

    JAVA基于位移的 int类型和tyte[]之间转换 [java] view plaincopy /** * 基于位移的int转化成byte[] * @param int number * @retu ...

  7. DATETIME类型和BIGINT 类型互相转换

    项目中使用BIGINT来存放时间,以下代码用来转换时间类型和BIGINT类型 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ========= ...

  8. c#匿名类 anonymous学习

    感谢http://blog.csdn.net/jjx0224/article/details/5887589 感谢http://hi.baidu.com/guodong828/blog/item/cc ...

  9. 数据类型和typeof操作符

    虽然学习js有一段时间了,但是对js的基础语法却是有些生疏.最近在看jquery源码,决定随带总结一些基础的语法知识.今天总结一下数据类型和typeof,这在写js的时候,是不得不知道的知识. 数据类 ...

随机推荐

  1. C++中数字与字符串之间的转换

    原文地址:http://www.cnblogs.com/luxiaoxun/archive/2012/08/03/2621803.html 1.字符串数字之间的转换 (1)string --> ...

  2. Debian6安装XP系统

    1.下载一键包,必须要在 root目录 下执行,可以先用 pwd 命令查看当前所在目录.执行命令:wget http://d.yxlgh.com/vps/zmdebian6xp.sh 2.执行 zmd ...

  3. 【算法】快速排序-Java版

    说在前面的话 平常码砖的时候,对于一个数组进行排序更多的是起泡排序,起泡排序对于一般不是很长的数组进行操作没什么问题,一旦数组过大,很明显效率低. 而快排是对起泡排序的一种改进,效率明显优高. 快排思 ...

  4. Hybrid App开发者一定不要错过的框架和工具

    最近开始给网站的移动版本做技术选型,发现了很多好玩的东西,写出来给大家分享下. ionicFramework 我是hybrid app的忠实粉丝和大力倡导者,从 新浪移动云开始就不断的寻找能帮助Web ...

  5. ubuntu 14.04 安装preforce

    官网: http://www.perforce.com/ http://www.perforce.com/support-services 1. 下载相关文件 http://filehost.perf ...

  6. 黑马程序员——vim编辑器的使用

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.基本操作 1.从命令提示符进入vim编辑器:   vim filename <ENTE ...

  7. shell编程的一些例子1

    1.$0-$9及$# $@的使用 demo_arg 内容 #!/bin/bash echo "程序名:$0" echo "命令传递参数个数:$#" echo & ...

  8. ASP.NET MVC轻教程 Step By Step 5——初识表单

    上一节我们将留言列表显示在Index视图里了,现在该添加一个留言的表单,好让用户自己添加留言. 首先在HomeController中添加一个名为“Write”的动作方法. public ActionR ...

  9. 既然HTTP1.1协议里每个连接默认都是持久连接,那么为何当今所有报文都在使用Connetion:Keep-Alive

    说白了,如果你发起时有,那么服务器支持,回应时也会有,不支持,也就没有了.所以一般客户端都会默认带着发,服务端返回不返回就是服务端的事了. 1. 支不支持长连接,关键在于服务端是否支持. 如果服务端不 ...

  10. RestKit:iOS开发必备,告别众多无聊代码

    http://www.csdn.net/article/2014-04-15/2819312-RestKit-frameworkRestKit是一款专为iOS设计的Objective-C框架,旨在与R ...