`

c#匿名类 anonymous

阅读更多

    感谢http://blog.csdn.net/jjx0224/article/details/5887589 

    感谢http://hi.baidu.com/guodong828/blog/item/cc53404ef40af002b3de0500.html

 

  c# 匿名类 上代码:

 

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Text;  
  5.   
  6. namespace ConsoleApplication1  
  7. {  
  8.     /// <summary>  
  9.     /// 作者:it小金  
  10.     /// 作用:匿名类型的使用  
  11.     /// 说明:var 关键字,用于表示隐式类型化的变量。var 与new 关键字一起使用时,可以创建匿名类型。  
  12.     /// </summary>  
  13.     class Program  
  14.     {  
  15.         static void Main(string[] args)  
  16.         {  
  17.             var a = new { name = "it小金", age = 24 };//匿名类型只是一个继承了Object 的、没有名称的类。该类的定义从初始化器中推断,类似于隐式类型化的变量。  
  18.             //a.name="hh";这是错误的,不能对属性进行赋值,因为name是a中的一个属性,且它为只读的  
  19.             string b = a.name.ToString();  
  20.             int c = a.age;  
  21.             Console.WriteLine(b);  
  22.             Console.WriteLine(c);  
  23.             Console.Read();  
  24.         }  
  25.     }  
  26. }  

   用到匿名类,难免碰到匿名类转换问题,上代码:
public T CastAnonymous<T>(object anonymous, T anonymousType)
{
  return (T)anonymous;
}
class User
{
  public string Name { get; set; }
}
public static void Main()
{
  var u = new User{ Name = "Lucifer" };
  var a = new { a = 26, Name = u.Name, b = false };
  Print(a);
}
public void Print(object anonymous)
{
  var a = CastAnonymous(anonymous, new { a=0, Name = "", b = false });
  Console.WriteLine{"{0} - {1} - {2}", a.a, a.Name, a.b};
}

分享到:
评论

相关推荐

    C# FTP操作封装类

    "C# FTP操作封装类"就是这样一个工具,它集成了常见的FTP命令,如上传、下载、列出目录、删除文件等,以便程序员能更高效地在C#项目中使用FTP服务。 FTP操作类的设计通常基于`System.Net.FtpWebRequest`和`System...

    Anonymous Method Anonymous Method

    匿名方法在编程中是一种非常实用的特性,尤其是在C#、Java和JavaScript等语言中,它允许程序员在不定义单独函数的情况下直接嵌入代码块。这种技术对于简短、一次性的任务特别有用,减少了代码的复杂性和冗余。下面将...

    C#中LINQ多条件JOIN时为什么可以使用匿名类

    "C#中LINQ多条件JOIN时为什么可以使用匿名类" C#中LINQ多条件JOIN时为什么可以使用匿名类?这是一个非常实用的问题。在本文中,我们将详细介绍关于C#中LINQ多条件JOIN时为什么可以使用匿名类的相关知识点。 首先,...

    C#教程 C#笔记 C#高级 C#知识点.rar

    - **匿名类型(Anonymous Types)**:在不需要显式定义类的情况下创建临时对象。 - **动态类型(Dynamic)**:在编译时不检查类型,而是在运行时决定,常用于与非.NET库交互。 4. **C#实用技术** - **序列化与反...

    图解c#2012代码

    3. **匿名类型(Anonymous Types)** 匿名类型允许开发者创建未命名的类实例,通常用于临时存储和处理数据。在C# 2012中,你可以通过自动属性(auto-implemented properties)简化匿名类型的定义,使得创建和使用...

    net Lamada表达式转匿名对象

    这个转换过程对于C#中的匿名类型尤其有用,因为匿名类型在编译时会被转换为一个具体的非公开类型,而`object`是所有类型的基类,可以安全地接收任何类型的值。例如,如果你有一个`Expression&lt;Func&lt;int&gt;&gt;`,你可以...

    C#3.0.doc文件下载

    匿名类型允许开发者在不需要显式定义新类的情况下创建具有一组属性的对象。这在处理临时数据或函数内部的临时结果时非常有用。创建匿名类型的方式是使用`new { ... }`,并为每个属性提供名称和初始值。例如: ```...

    C# in Depth, 2nd Edition(深入解析C# 第二版)

    2. **委托(Delegates)与匿名方法(Anonymous Methods)** - 委托是一种引用类型的数据结构,其可以存储并执行具有相同调用签名的方法。匿名方法则是在C# 2.0中引入的一种在编译时创建的方法,它们通常被用来提供给...

    C#5.0参考手册

    5. **匿名类(Anonymous Types)**: C# 5.0继续支持匿名类,允许开发者创建未命名的类实例,通常用于临时数据存储或简化查询表达式。 6. **类型推断(Type Inference)**: 使用`var`关键字,编译器可以推断出...

    C#特性 匿名类型与隐式类型局部变量使用介绍

    匿名类型的关键在于其无名性,但在编译时,C#编译器会自动生成一个具有内部名称的类型(如 `&lt;&gt;f__AnonymousType0&lt;&lt;Key&gt;j__TPar, &lt;Value&gt;j__TPar&gt;`),这个类型是内部密封的,并且通常是泛型,以便在不同实例间共享。...

    深入理解C#2.0版

    匿名方法(Anonymous Methods) 匿名方法是在C# 2.0中新增的一种功能,它允许在不定义显式方法的情况下传递代码块。这种特性对于事件处理非常有用,可以将简短的代码片段作为参数传递给方法。例如,可以将匿名方法...

    C#语法汇总 4.0 CHM版本

    15. **匿名类型(Anonymous Types)**:在不需要显式定义新类型时,可使用匿名类型快速创建对象。 16. **扩展方法(Extension Methods)**:允许在现有类上添加方法,而无需修改原始类的源代码。 17. **异步编程**...

    C#-学习笔记

    4. **Lambda表达式**:这是C# 3.0引入的新特性,提供了一种简洁的编写匿名方法的方式,常用于LINQ查询。 5. **LINQ(Language Integrated Query)**:C#的查询语言集成特性,允许开发者用自然、直观的方式来查询...

    C#代码转java代码

    然而,C#引入了一些Java没有的特性,比如属性(Properties)、匿名方法( Anonymous Methods)、LINQ(Language Integrated Query)等。Java则是开源的,跨平台性更强,其设计哲学强调"一次编写,到处运行"。 C#到...

    C#语言规范2.0(C# 2.0中的重点难点)

    C# 2.0 是在 C# 1.0 和 1.1 的基础上进行的重大更新,引入了多个重要的新特性,如泛型(Generics)、匿名方法(Anonymous Methods)和迭代器(Iterators)等。这些新特性极大地提高了 C# 语言的灵活性和性能,同时也...

    C#编程语言与面向对象基础教程

    - 匿名方法(Anonymous Method)和lambda表达式:简化短小的函数式代码。 - 析构函数(Destructor)和垃圾回收(Garbage Collection):自动管理内存,避免内存泄漏。 - 异步编程(Asynchronous Programming):...

    C#知识库 知识库!

    8. **匿名类型(Anonymous Type)**:在不需要为新类型起名时,可以使用匿名类型创建对象。 9. **异步编程**:C# 5.0引入了`async`和`await`关键字,使得异步编程更为简单,降低了UI线程阻塞的风险。 10. **泛型...

    C#3.0新语法总结

    6. **匿名类(Anonymous Types)**: 匿名类在代码中没有明确声明,而是由编译器在编译时自动生成。它们通常用于临时数据存储,特别是在LINQ查询中。当多个匿名类型具有相同的属性结构时,编译器会合并为一个类型,...

    最新C#2008教程.pdf

    2. **匿名类型(Anonymous Types)**:C# 2008允许创建未命名的类型,主要用在LINQ查询中。这些类型在编译时自动生成,提供了一种快速构建数据结构的方式。 3. **扩展方法(Extension Methods)**:扩展方法允许在...

    c# 管道的使用 使用DOS

    在C#中,管道分为命名管道(Named Pipes)和匿名管道(Anonymous Pipes)。命名管道可以在同一台计算机的不同进程之间提供通信,而匿名管道通常用于父进程和子进程之间的通信。在这个项目中,我们可能会看到如何创建...

Global site tag (gtag.js) - Google Analytics