Cobra/Keywords/using: различия между версиями
ISbot (обсуждение | вклад) м Замена <tt /> на <code />; избыточные <big /> и <font /> вокруг <source />; {{BookCat}}; пробелы. |
DannyS712 (обсуждение | вклад) м <source> -> <syntaxhighlight> (phab:T237267) |
||
Строка 6: | Строка 6: | ||
В использовании блока, объект только для чтения и не может быть изменены или переназначен. |
В использовании блока, объект только для чтения и не может быть изменены или переназначен. |
||
== Синтаксис == |
== Синтаксис == |
||
< |
<syntaxhighlight lang="python"> |
||
using <name> = <expression> |
using <name> = <expression> |
||
<statements> |
<statements> |
||
</syntaxhighlight> |
|||
</source> |
|||
== Пример == |
== Пример == |
||
< |
<syntaxhighlight lang="python"> |
||
using font1 = new Font("Arial", 10.0f) |
using font1 = new Font("Arial", 10.0f) |
||
charset = font1.GdiCharSet |
charset = font1.GdiCharSet |
||
# do domething with charset |
# do domething with charset |
||
# font1 disposed of (and out of scope) here |
# font1 disposed of (and out of scope) here |
||
</syntaxhighlight> |
|||
</source> |
|||
< |
<syntaxhighlight lang="python"> |
||
using f = File.createText(scriptName) |
using f = File.createText(scriptName) |
||
f.writeLine('#!/bin/sh') |
f.writeLine('#!/bin/sh') |
||
f.writeLine('echo "Running a shell script made from cobra-[CobraCore.version]" "$@"') |
f.writeLine('echo "Running a shell script made from cobra-[CobraCore.version]" "$@"') |
||
</syntaxhighlight> |
|||
</source> |
|||
< |
<syntaxhighlight lang="python"> |
||
using resultsWriter = File.appendText(resultsFileName) |
using resultsWriter = File.appendText(resultsFileName) |
||
print to resultsWriter, 'Results of Run [date]' |
print to resultsWriter, 'Results of Run [date]' |
||
.printTotals(resultsWriter to !) |
.printTotals(resultsWriter to !) |
||
</syntaxhighlight> |
|||
</source> |
|||
Вы можете достичь аналогичного результата внутри блока try и вызова .dispose в блоке finally. |
Вы можете достичь аналогичного результата внутри блока try и вызова .dispose в блоке finally. |
||
< |
<syntaxhighlight lang="python"> |
||
font1 = new Font("Arial", 10.0f) |
font1 = new Font("Arial", 10.0f) |
||
try |
try |
||
Строка 35: | Строка 35: | ||
finally |
finally |
||
if font1, (font1 to IDisposable).dispose |
if font1, (font1 to IDisposable).dispose |
||
</syntaxhighlight> |
|||
</source> |
|||
{{BookCat}} |
{{BookCat}} |
Текущая версия от 16:10, 16 апреля 2020
Using[править]
using упрощает работу с объектами которые реализуют интерфейс IDisposable. Гарантировано удаляет объект после его использования.
Это обеспечивает структуру, которая инкапсулирует правильное использование и высвобождение объекта IDisposable.
После выхода из блока вызывается метод Dispose(). Метод Dispose этого интерфейса используется вместе со сборщиком мусора для высвобождения неуправляемых ресурсов явным образом.Пользователь объекта может вызвать этот метод, когда объект ему больше не нужен.
а также вызывает сам объект, чтобы выйти из сферы, как только. распоряжаться называется.
В использовании блока, объект только для чтения и не может быть изменены или переназначен.
Синтаксис[править]
using <name> = <expression>
<statements>
Пример[править]
using font1 = new Font("Arial", 10.0f)
charset = font1.GdiCharSet
# do domething with charset
# font1 disposed of (and out of scope) here
using f = File.createText(scriptName)
f.writeLine('#!/bin/sh')
f.writeLine('echo "Running a shell script made from cobra-[CobraCore.version]" "$@"')
using resultsWriter = File.appendText(resultsFileName)
print to resultsWriter, 'Results of Run [date]'
.printTotals(resultsWriter to !)
Вы можете достичь аналогичного результата внутри блока try и вызова .dispose в блоке finally.
font1 = new Font("Arial", 10.0f)
try
charset = font1.GdiCharSet
# do domething with charset
finally
if font1, (font1 to IDisposable).dispose