Подключать Excel к Доступу с помощью VBA очень полезно, я использую его в своей профессии каждый день. Строка подключения, которую я использую, согласно программе, найденной в ссылке ниже. Программа может быть автоматизирована для выполнения в многочисленных связях или задачах на выстреле, но основной код соединения выглядит одинаково.Удачи!
Это упрощает использование системы рендеринга.
Если бы фреймворк позволял изменять шрифт Font, ему нужно было бы обнаруживать изменения и дорабатывать, как это происходит на регулярной основе. . Поскольку Font создает собственный ресурс, сохранение этого неизменяемого позволяет системе не беспокоиться о необходимости повторного создания внутренних дескрипторов на постоянной основе.
Кроме того, я не согласен с точки зрения «бедствия для программиста». Сделав Font неизменяемым, становится более очевидным, что происходит, когда пользователь создает объект Font. Если вам нужен новый шрифт, вам необходимо создать новый объект Font, который, в свою очередь, создает новые ресурсы собственных шрифтов. Если сделать шрифт неизменяемым, станет более понятным, что происходит - у вас меньше шансов случайно создать проблему с производительностью.
Were Font mutable,
Ну, задайте себе несколько вопросов.
Во-первых, является ли шрифт логически изменяемым элементом, например списком покупок, или неизменным элементом, например числом? Если вы моделируете список покупок в программе, имеет смысл сделать его изменяемым, потому что вы обычно думаете об одном списке продуктов, содержимое которого изменяется по мере того, как у вас заканчиваются или покупаются определенные товары. Но числа, которые вы обычно моделируете как неизменные - число 12 - это число 12, отныне и навсегда.
Я думаю, что «Helvetica 12 point bold» - это фиксированная, неизменная вещь, например число, а не то, что я могу менять.
Во-вторых, шрифт логически больше похож на значение, которое вы можете копировать, или это больше похоже на единственную вещь, на которую вы можете ссылаться? Я не думаю о наличии «двух копий» Helvetica; Я думаю о Helvetica. В то время как числа я считаю разными копиями для разных целей - когда у меня 12 пунктов в моем списке покупок и 12 ключей на моем брелоке, я не думаю, что обе эти вещи «относятся к 12».
Поскольку я считаю шрифты неизменяемыми и упоминаемыми, а не изменяемыми и копируемыми по значению, я лично моделирую шрифты как неизменяемые ссылочные типы. Возможно, ваше представление о шрифтах отличается от моего.
а не как изменяемые и копируемые по значению, я лично моделировал бы шрифты как неизменяемые ссылочные типы. Возможно, ваше представление о шрифтах отличается от моего. а не как изменяемые и копируемые по значению, я лично моделировал бы шрифты как неизменяемые ссылочные типы. Возможно, ваше представление о шрифтах отличается от моего. Они не являются структурами, потому что у них должны быть финализаторы для обертывания нижележащих объектов и обеспечения разумной реализации IDisposable
. Что произойдет, если вы Dispose ()
создадите свою собственную копию struct
? Вы каждый раз клонируете ручку?
На самом деле это не сильно нагружает сборщик мусора ...
Он также позволяет безопасно повторно использовать Шрифт
, не беспокоясь о том, что он изменит половину способ выполнения операции ;-p
Я не согласен, это беспокоит программиста. В BCL есть множество неизменяемых типов, которые ежедневно используются программистами и не вызывают никаких проблем. Например, System.String.
Одно из преимуществ неизменности заключается в том, что вам не нужно каждый раз создавать новый экземпляр. Вы можете повторно использовать один и тот же тип шрифта столько раз, сколько захотите, потому что он не изменится. С другой стороны, если бы он был изменяемым, вам нужно было бы каждый раз делать копию, чтобы гарантировать, что никто другой не изменил его из-под вас.
Наконец, Font на самом деле не является неизменяемым классом в самом строгом смысле слова слово. Он реализует IDisposable, а в методе Dispose удаляет базовый собственный объект.