代码之家  ›  专栏  ›  技术社区  ›  Fredou

创建LINQ使用的自定义类时,它是纯变量还是始终是属性有关系?

  •  1
  • Fredou  · 技术社区  · 16 年前

    这两者有什么区别

    class Class1
    {
        public string prop1 { get; set; }
        public string prop2 { get; set; }
        public string prop3 { get; set; }
        public string prop4 { get; set; }
    }
    

    还有这个

    class Class2
    {
        public string var1;
        public string var2;
        public string var3;
        public string var4;
    }
    

    ... select new Class1{...} 
    ... select new Class2{...}
    
    1 回复  |  直到 16 年前
        1
  •  3
  •   Andrew Hare    16 年前

    就LINQ而言,这并不重要,但是如果您关心正确的面向对象设计,那么应该使用属性。如果您不在类型的状态(即字段)周围添加适当的封装,您将在将来为自己制造潜在的问题,因为您将无法验证或控制类型的状态,因为此类型的使用者将有权在不使用适当通道(即属性或方法)的情况下更改内容。

    尽管如此,无论哪种方式,LINQ查询都可以正常工作。