代码之家  ›  专栏  ›  技术社区  ›  Josh G

匿名类型的用途是什么?

  •  7
  • Josh G  · 技术社区  · 17 年前

    匿名类型的最佳用例是什么?

    7 回复  |  直到 17 年前
        1
  •  4
  •   Scott Ivey    17 年前

    匿名类型仅用于非常狭窄的范围。我遇到的大多数用例都涉及Linq。

    var result = from x in MyCollection
                 select new 
                 {
                     x.Prop1, 
                     x.Prop2
                 };
    

    var x = new
            {
                FirstName = "Scott",
                LastName = "Ivey"
            };
    
        2
  •  2
  •   flq    17 年前

    然而,它并没有阻止例如ASP。NET MVC团队将它们用作哈希表样式的参数对象。..

    Url.Action(new{controller="Home", action="Index"})
    

    不过,由于大量使用魔术弦,我不会鼓励这样做。

        3
  •  2
  •   markt    17 年前

    [AcceptVerbs(HttpVerbs.Get)]
        public ActionResult Person(int id)
        {
            Person person = manager.GetPersonById(id);
            if(Request.IsAjaxRequest())
                return Json(new {Name=person.Name, Age=person.Age,...});
            else
                ...
        }
    
        4
  •  1
  •   Jonathan Rupp    17 年前

    每当您想对某些对象运行查询,然后对它们执行其他操作(如迭代)时,它们都很有用。

    例如:

    var procs = System.Diagnostics.Process.GetProcesses().Select(p => new { p.Id, p.ProcessName});
    foreach(var p in procs)
    {
        Console.WriteLine("{0}: {1}", p.Id, p.ProcessName);
    }
    
        5
  •  1
  •   n8wrl    17 年前

    最近,我在满足DataGrid或DataView中依赖于不再返回相同数据的查询列的字段方面很幸运。例如,有时由于各种原因,数据源被规范化或字段被重命名。使用返回匿名类型的LINQ查询作为“前端”,我们能够在生产中保持现有的网格。

        6
  •  0
  •   Jason Watts    17 年前

    对的;它们仅在极其有限的范围内具有实用性。

    推荐文章