Просто используйте параметр -j
, работает на OSX
, я не знаю о Linux.
zip -j -r 1.zip /home/username/the_folder
Цель новых автоматических свойств состоит в том, чтобы уменьшить сумму шаблонного кода, который необходимо записать, когда у Вас просто есть простое свойство, которому не нужна никакая специальная логика в том, чтобы получать или наборе.
, Если Вы хотите получить доступ к члену парламента, не занимающему официального поста, которого используют эти свойства, это обычно по нескольким причинам:
Вы только хотите иметь общедоступный доступ для чтения (т.е. просто 'получать'), и класс пишут в участника непосредственно - в этом случае, можно использовать частный набор в автоматическом свойстве. т.е.
public class MyClass
{
public int Age {get; private set;}
}
Это обычно покрывает больше всего причины желания непосредственно добраться до отступающего поля, используемого автоматическими свойствами.
Ваше использование автоматических свойств подразумевает, что Вам не нужна никакая логика получения/установки для свойства таким образом, частная переменная поддержки является ненужной.
не используют автоматические свойства, если у Вас есть какая-либо сложная логика в Вашем классе. Просто пойдите private int _age
и нормальные методы get/методы set, как Вы обычно были бы.
IMO, автоматические свойства больше подходят для того, чтобы быстро реализовать холостые объекты или временные капсулы данных как:
public class TempMessage {
public int FromID { get; set; }
public int ToID { get; set; }
public string Message { get; set; }
}
, Где Вам не нужно много логики.
Этот синтаксис обычно называют "сахаром синтаксиса", что означает, что компилятор берет тот синтаксис и переводит его во что-то еще. В Вашем примере компилятор генерировал бы код, который выглядит примерно так:
[CompilerGenerated]
private int <Age>k_BackingField;
public int Age
{
[CompilerGenerated]
get
{
return this.<Age>k_BackingField;
}
[CompilerGenerated]
set
{
this.<Age>k_BackingField = value;
}
Даже знание, всех из которых, Вы могли , вероятно , получает доступ к отступающему полю непосредственно, но таким поражениям цель использовать автоматические свойства. Я говорю, вероятно, здесь, потому что Вы тогда зависите от детали реализации, которая могла измениться в любой точке в будущем релизе компилятора C#.
Негласно то, что происходит, является инжекцией переменной члена парламента, не занимающего официального поста, снабженной префиксом <> k __ AutomaticallyGeneratedPropertyField#
От C# 3.0 Автоматические Свойства объяснили
, Хотя может быть возможно использовать того члена парламента, не занимающего официального поста непосредственно, это очень hacky и ненужное.
Вы не были должны, и очень маловероятно, что Вы должны. Если необходимо получить доступ к свойству, просто используйте общественную собственность (например, это. Возраст). Нет ничего специального о частном поле, поддерживающем общественную собственность, использование его в предпочтении к свойству является просто суеверием.
Вы не можете, это быть функцией языка в противоположность функции IDE. Чтобы быть честным, я предпочел бы тогда, чтобы IDE включил частную переменную для Вас. Я соглашаюсь, что немного странно для класса внутренне должным быть использовать общедоступную точку входа для доступа к ее собственным переменным. Следовательно я не использую эту новую функцию так очень сам.