RefCounted

Успадковує: Object

Успадковано від: AESContext, AStar2D, AStar3D, AStarGrid2D, AudioEffectInstance, AudioSample, AudioSamplePlayback, AudioStreamPlayback, CameraFeed, CharFXTransform, ConfigFile, Crypto, DirAccess, DTLSServer, EditorContextMenuPlugin, EditorDebuggerPlugin, EditorDebuggerSession, EditorExportPlatform, EditorExportPlugin, EditorExportPreset, EditorFeatureProfile, EditorFileSystemImportFormatSupportQuery, EditorInspectorPlugin, EditorResourceConversionPlugin, EditorResourcePreviewGenerator, EditorResourceTooltipPlugin, EditorSceneFormatImporter, EditorScenePostImport, EditorScenePostImportPlugin, EditorScript, EditorTranslationParserPlugin, EncodedObjectAsID, ENetConnection, EngineProfiler, Expression, FileAccess, GLTFObjectModelProperty, HashingContext, HMACContext, HTTPClient, ImageFormatLoader, JavaClass, JavaObject, JavaScriptObject, KinematicCollision2D, KinematicCollision3D, Lightmapper, Logger, MeshConvexDecompositionSettings, MeshDataTool, MultiplayerAPI, Mutex, NavigationPathQueryParameters2D, NavigationPathQueryParameters3D, NavigationPathQueryResult2D, NavigationPathQueryResult3D, Node3DGizmo, OggPacketSequencePlayback, OpenXRAPIExtension, OpenXRFutureResult, PackedDataContainerRef, PacketPeer, PCKPacker, PhysicsPointQueryParameters2D, PhysicsPointQueryParameters3D, PhysicsRayQueryParameters2D, PhysicsRayQueryParameters3D, PhysicsShapeQueryParameters2D, PhysicsShapeQueryParameters3D, PhysicsTestMotionParameters2D, PhysicsTestMotionParameters3D, PhysicsTestMotionResult2D, PhysicsTestMotionResult3D, RandomNumberGenerator, RDAttachmentFormat, RDFramebufferPass, RDPipelineColorBlendState, RDPipelineColorBlendStateAttachment, RDPipelineDepthStencilState, RDPipelineMultisampleState, RDPipelineRasterizationState, RDPipelineSpecializationConstant, RDSamplerState, RDShaderSource, RDTextureFormat, RDTextureView, RDUniform, RDVertexAttribute, RegEx, RegExMatch, RenderSceneBuffers, RenderSceneBuffersConfiguration, Resource, ResourceFormatLoader, ResourceFormatSaver, ResourceImporter, SceneState, SceneTreeTimer, ScriptBacktrace, Semaphore, SkinReference, StreamPeer, SurfaceTool, TCPServer, TextLine, TextParagraph, TextServer, Thread, TLSOptions, TranslationDomain, TriangleMesh, Tween, Tweener, UDPServer, UPNP, UPNPDevice, WeakRef, WebRTCPeerConnection, XMLParser, XRInterface, XRPose, XRTracker, ZIPPacker, ZIPReader

Базовий клас для довідкових об'єктів.

Опис

Базовий клас для будь-якого об'єкта, який зберігає лічильник посилань. Resource та багато інших допоміжних об'єктів успадковують цей клас.

На відміну від інших типів Object, RefCounted зберігають внутрішній лічильник посилань, щоб вони автоматично звільнялися, коли більше не використовуються, і тільки тоді. Тому RefCounted не потрібно звільняти вручну за допомогою методу Object.free().

Екземпляри RefCounted, що потрапили в циклічне посилання, не будуть звільнятися автоматично. Наприклад, якщо вузол містить посилання на екземпляр A, який прямо чи опосередковано містить посилання на A, лічильник посилань A буде 2. Знищення вузла залишить A з лічильником посилань, рівним 1, і виникне витік пам'яті. Щоб запобігти цьому, одне з посилань у циклі можна зробити слабким за допомогою методу @GlobalScope.weakref().

У переважній більшості випадків використання достатньо створити екземпляр та використовувати типи, похідні від RefCounted. Методи, наведені в цьому класі, призначені лише для досвідчених користувачів і можуть спричинити проблеми, якщо їх неправильно використовувати.

Примітка: У C# об'єкти з підрахунком посилань не звільняються миттєво після того, як вони більше не використовуються. Натомість періодично запускатиметься збирання сміття та звільнятиме об'єкти з підрахунком посилань, які більше не використовуються. Це означає, що невикористані об'єкти залишатимуться в пам'яті деякий час, перш ніж будуть видалені.

Посібники

Методи

int

get_reference_count() const

bool

init_ref()

bool

reference()

bool

unreference()


Описи методів

int get_reference_count() const 🔗

Повернення поточного рахунку.


bool init_ref() 🔗

Навігація внутрішнього посилання. Використовуйте це лише якщо ви дійсно знаєте, що ви робите.

Повертає, чи успішно пройшла ініціалізація.


bool reference() 🔗

Зняття внутрішнього довідника. Використовуйте це лише якщо ви дійсно знаєте, що ви робите.

Повертаємо true, якщо підрив був успішним, false в іншому випадку.


bool unreference() 🔗

Відхилити внутрішній довідковий лічильник. Використовуйте це лише якщо ви дійсно знаєте, що ви робите.

Повертає true, якщо об'єкт повинен бути звільнений після розпаду, false інакше.