Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Add() [2/2]

virtual void System.ComponentModel.Container.Add ( IComponent? component,
string? name )
inlinevirtualinherited

Implements System.ComponentModel.IContainer.

Definition at line 112 of file Container.cs.

113 {
114 lock (_syncObj)
115 {
116 if (component == null)
117 {
118 return;
119 }
120 ISite site = component.Site;
121 if (site != null && site.Container == this)
122 {
123 return;
124 }
125 if (_sites == null)
126 {
127 _sites = new ISite[4];
128 }
129 else
130 {
131 ValidateName(component, name);
132 if (_sites.Length == _siteCount)
133 {
134 ISite[] array = new ISite[_siteCount * 2];
136 _sites = array;
137 }
138 }
139 site?.Container.Remove(component);
140 ISite site2 = CreateSite(component, name);
141 _sites[_siteCount++] = site2;
142 component.Site = site2;
143 _components = null;
144 }
145 }
virtual void ValidateName(IComponent component, string? name)
Definition Container.cs:224
ComponentCollection _components
Definition Container.cs:55
virtual ISite CreateSite(IComponent component, string? name)
Definition Container.cs:147
void Remove(IComponent? component)
IContainer? Container
Definition ISite.cs:9

References System.ComponentModel.Container._components, System.ComponentModel.Container._siteCount, System.ComponentModel.Container._sites, System.ComponentModel.Container._syncObj, System.array, System.ComponentModel.ISite.Container, System.Array.Copy(), System.ComponentModel.Container.CreateSite(), System.ComponentModel.IContainer.Remove(), System.ComponentModel.IComponent.Site, and System.ComponentModel.Container.ValidateName().