при создании собственного класса, который будет использоваться LINQ, имеет ли значение, является ли он чистой переменной или это всегда свойства? - PullRequest
1 голос
/ 09 марта 2010

какая разница между этим

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;
}

при выполнении запроса LINQ с помощью

... select new Class1{...} 
... select new Class2{...}

1 Ответ

3 голосов
/ 09 марта 2010

Это не имеет значения, если речь идет о LINQ, но если вы заинтересованы в правильном объектно-ориентированном дизайне, вы должны использовать свойства. Если вы не добавите правильную инкапсуляцию вокруг состояния вашего типа (то есть полей), вы создадите потенциальные проблемы для себя в будущем, так как вы не сможете проверить или контролировать состояние вашего типа, так как потребители этого типа будут Вы можете свободно менять вещи, не используя надлежащие каналы (т. е. свойство или метод).

Все это, как говорится, однако, запросы LINQ будут работать в любом случае просто отлично.

...