Используйте его для анонимных типов - это - то, для чего это там. Что-либо еще - использование слишком далеко. Как многие люди, которые росли на C, я привык смотреть слева от объявления для типа. Я не смотрю на правую сторону, если я не имею к. Используя var
для любого старого объявления заставляет меня сделать это все время, которое я лично нахожу неудобными.
Те, которые говорят ', это не имеет значения, использует то, что Вы довольны', не видят целое изображение. Все возьмут код других людей однажды или другого и иметь для контакта с любыми решениями, которые они приняли в то время, когда они записали его. Это должно плохо достаточно иметь дело с радикально различными соглашениями о присвоении имен, или - классическим схватыванием - крепящие стили, не добавляя целое' var
или не' вещь в соединение. Худший случай будет то, где один программист не использовал var
, и затем вперед прибывает специалист по обслуживанию, который любит его и расширяет код с помощью него. Таким образом, теперь у Вас есть безобразная путаница.
Стандарты являются хорошей вещью точно, потому что они означают, что Вы то, что намного более вероятно быть в состоянии взять случайный код и быть в состоянии к grok она быстро. Чем больше вещей, которые отличаются, тем тяжелее, который добирается. И перемещаясь в 'var везде' стиль делает большой различие.
я не возражаю против динамического контроля типов, и я не возражаю против implict, вводящего - на языках, которые разработаны для них. Мне вполне нравится Python. Но C# был разработан как статически явно-типизированный-язык, и это - то, как это должно остаться. Нарушение правил для анонимных типов было достаточно плохо; позволяющие люди берут это еще далее и повреждают идиомы языка, еще больше - что-то, чем я не доволен. Теперь, когда джин вне бутылки, она никогда не будет возвращаться в. C# станет balkanised в лагеря. Не хороший.
I Я не уверен, что вы имеете в виду, говоря о нежелании использовать сторонние инструменты, но я предполагаю, что вы не хотите, чтобы какое-то неприятное взаимодействие программно выполняло это с помощью другого программного обеспечения.
Я рекомендую использовать ICSharpCode SharpZipLib
Его можно добавить в ваш проект в качестве эталонной DLL, и он довольно прост для создания файлов ZIP и их чтения.
Используйте System.IO.Packaging в .NET 3.0+ .
См. Это введение в System.IO.Packaging
Если вы можете зависимость .NET 4.5, в этом юниверсе есть System.IO.Compression.ZipArchive ; см. обзорную статью здесь ( через сводную статью новостей InfoQ здесь )
http://www.codeplex.com/DotNetZip Исходные коды доступны, так что вы можете увидеть, как они это делают, и написать что-то похожее для себя
Проверьте System.IO.Compression.DeflateStream. Вы найдете пару примеров на msdn http://msdn.microsoft.com/en-us/library/system.io.compression.deflatestream.aspx
Вы всегда можете вызвать сторонний исполняемый файл, такой как 7-zip, с соответствующей командной строкой с помощью класса System.Diagnostics.Process. Такого взаимодействия нет, потому что вы просто просите ОС запустить двоичный файл.