Можно попробовать использовать background-repeat: repeat
, сделать background-size
довольно маленьким и использовать background-image: linear-gradient(45deg, ...)
:
.light {
position: absolute;
width: 200px;
height: 200px;
left: 50%;
top: 50%;
margin-left: -100px;
margin-top: -100px;
border-radius: 100%;
background-image: linear-gradient(45deg, #ff8000, #ffa040);
background-repeat: repeat;
background-size: 20px 20px;
transform: rotate(45deg);
/* shadows for 3d effect */
box-shadow: inset 3px 0px 10px rgba(255, 255, 255, 0.5), inset 10px 10px 50px rgba(255, 255, 255, 0.2), inset -10px -10px 50px rgba(0, 0, 0, 0.2), 0px 0px 10px rgba(0, 0, 0, 0.3);
}
/* glow */
.light:after {
position: absolute;
width: 100%;
height: 100%;
content: '';
border-radius: 100%;
background:
radial-gradient(ellipse at center, rgba(255, 255, 100, 0.3) 0%, rgba(0, 0, 0, 0) 100%);
}
<div class="light">
</div>
Поворот всего на 45 градусов также помогает сделать его правдоподобным, на мой взгляд!
Вы также можете сойти с ума и использовать ключевые кадры, чтобы получить эффект свечения:
[119 ]
@keyframes glow {
0% { filter: brightness(1) contrast(1); }
50% { filter: brightness(1.1) contrast(1.1); }
100% { filter: brightness(1) contrast(1); }
}
.light {
position: absolute; width: 200px; height: 200px;
left: 50%; top: 50%;
margin-left: -100px; margin-top: -100px;
border-radius: 100%;
background-image: linear-gradient(45deg, #ff8000, #ffa040);
background-repeat: repeat;
background-size: 20px 20px;
animation: glow 3000ms linear infinite;
transform: rotate(45deg);
box-shadow: 0 0 20px 2px #ff7f00;
}
<div class="light">
</div>
Нет, IDisposable
объекты не расположены, когда они выходят из объема. Это по точно этой причине, что нам нужно IDisposable
- для детерминированной очистки.
Они будут в конечном счете , собраны "мусор", и если существует финализатор, которым это (возможно), назовут - но это могло бы быть долгим временем в будущем (не хороший для пулов соединения и т.д.). Сборка "мусора" зависит от давления памяти - если ничто не хочет дополнительную память, нет никакой потребности выполнить цикл GC.
Интересно (возможно), существуют некоторые случаи, где "использование" является болью - когда незаконный класс выдает исключение на Dispose()
иногда. WCF является преступником этого. Я обсудил эту тему (с простым обходным решением) здесь .
В основном - если класс реализует IDisposable
, и Вы собственный экземпляр (т.е. Вы создали его или безотносительно), это - Ваше задание, чтобы гарантировать, что он расположен. Это могло бы означать через "использование", или это могло бы означать передавать его другой части кода, который принимает на себя ответственность.
я на самом деле видел код отладки типа:
#if DEBUG
~Foo() {
// complain loudly that smoebody forgot to dispose...
}
#endif
(где Dispose
вызовы GC.SuppressFinalize
)
"IDisposables, от которого не избавляются, когда они выходят из объема?"
номер, если объект IDisposable finalizable, который не является тем же самым, тогда оно будет завершено, когда оно собрало "мусор".
, Который мог бы скоро быть или мог бы быть почти никогда.
книга C#/CLR Jeff Richter очень хороша на всем этом материале, и книга Руководства по проектированию Платформы также полезна.
я должен только использовать ИСПОЛЬЗОВАНИЕ, когда мой объект использует, Располагают для уборки себя?
Вы можете [только 113] использование 'использование', когда объект реализует IDisposable. Компилятор возразит, пытаетесь ли Вы сделать иначе.
Для добавления к другим ответам необходимо использовать using
(или явное Располагают) каждый раз, когда объект содержит любые ресурсы кроме управляемой памяти. Примерами были бы вещи как файлы, сокеты, соединения с базой данных, или даже дескрипторы рисования GDI.
сборщик "мусора" в конечном счете завершил бы эти объекты, но только в некоторое неуказанное время в будущем. Вы не можете полагаться на него происходящий своевременно, и у Вас, возможно, закончился тот ресурс тем временем.