DataSet Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Vertegenwoordigt een in-memory cache met gegevens.
public ref class DataSet : System::ComponentModel::MarshalByValueComponent, System::ComponentModel::IListSource, System::ComponentModel::ISupportInitialize, System::Runtime::Serialization::ISerializable, System::Xml::Serialization::IXmlSerializable
public ref class DataSet : System::ComponentModel::MarshalByValueComponent, System::ComponentModel::IListSource, System::ComponentModel::ISupportInitializeNotification, System::Runtime::Serialization::ISerializable, System::Xml::Serialization::IXmlSerializable
[System.Serializable]
public class DataSet : System.ComponentModel.MarshalByValueComponent, System.ComponentModel.IListSource, System.ComponentModel.ISupportInitialize, System.Runtime.Serialization.ISerializable, System.Xml.Serialization.IXmlSerializable
[System.Serializable]
public class DataSet : System.ComponentModel.MarshalByValueComponent, System.ComponentModel.IListSource, System.ComponentModel.ISupportInitializeNotification, System.Runtime.Serialization.ISerializable, System.Xml.Serialization.IXmlSerializable
public class DataSet : System.ComponentModel.MarshalByValueComponent, System.ComponentModel.IListSource, System.ComponentModel.ISupportInitializeNotification, System.Runtime.Serialization.ISerializable, System.Xml.Serialization.IXmlSerializable
[<System.Serializable>]
type DataSet = class
inherit MarshalByValueComponent
interface IListSource
interface IXmlSerializable
interface ISupportInitialize
interface ISerializable
[<System.Serializable>]
type DataSet = class
inherit MarshalByValueComponent
interface IListSource
interface IXmlSerializable
interface ISupportInitializeNotification
interface ISupportInitialize
interface ISerializable
type DataSet = class
inherit MarshalByValueComponent
interface IListSource
interface ISupportInitialize
interface ISupportInitializeNotification
interface ISerializable
interface IXmlSerializable
Public Class DataSet
Inherits MarshalByValueComponent
Implements IListSource, ISerializable, ISupportInitialize, IXmlSerializable
Public Class DataSet
Inherits MarshalByValueComponent
Implements IListSource, ISerializable, ISupportInitializeNotification, IXmlSerializable
- Overname
- Kenmerken
- Implementeringen
Voorbeelden
Het volgende voorbeeld bestaat uit verschillende methoden die samen een DataSetdatabase van Northwind maken en vullen.
using System;
using System.Data;
using System.Data.SqlClient;
namespace Microsoft.AdoNet.DataSetDemo
{
class NorthwindDataSet
{
static void Main()
{
string connectionString = GetConnectionString();
ConnectToData(connectionString);
}
private static void ConnectToData(string connectionString)
{
//Create a SqlConnection to the Northwind database.
using (SqlConnection connection =
new SqlConnection(connectionString))
{
//Create a SqlDataAdapter for the Suppliers table.
SqlDataAdapter adapter = new SqlDataAdapter();
// A table mapping names the DataTable.
adapter.TableMappings.Add("Table", "Suppliers");
// Open the connection.
connection.Open();
Console.WriteLine("The SqlConnection is open.");
// Create a SqlCommand to retrieve Suppliers data.
SqlCommand command = new SqlCommand(
"SELECT SupplierID, CompanyName FROM dbo.Suppliers;",
connection);
command.CommandType = CommandType.Text;
// Set the SqlDataAdapter's SelectCommand.
adapter.SelectCommand = command;
// Fill the DataSet.
DataSet dataSet = new DataSet("Suppliers");
adapter.Fill(dataSet);
// Create a second Adapter and Command to get
// the Products table, a child table of Suppliers.
SqlDataAdapter productsAdapter = new SqlDataAdapter();
productsAdapter.TableMappings.Add("Table", "Products");
SqlCommand productsCommand = new SqlCommand(
"SELECT ProductID, SupplierID FROM dbo.Products;",
connection);
productsAdapter.SelectCommand = productsCommand;
// Fill the DataSet.
productsAdapter.Fill(dataSet);
// Close the connection.
connection.Close();
Console.WriteLine("The SqlConnection is closed.");
// Create a DataRelation to link the two tables
// based on the SupplierID.
DataColumn parentColumn =
dataSet.Tables["Suppliers"].Columns["SupplierID"];
DataColumn childColumn =
dataSet.Tables["Products"].Columns["SupplierID"];
DataRelation relation =
new System.Data.DataRelation("SuppliersProducts",
parentColumn, childColumn);
dataSet.Relations.Add(relation);
Console.WriteLine(
"The {0} DataRelation has been created.",
relation.RelationName);
}
}
static private string GetConnectionString()
{
// To avoid storing the connection string in your code,
// you can retrieve it from a configuration file.
return "Data Source=(local);Initial Catalog=Northwind;"
+ "Integrated Security=SSPI";
}
}
}
Option Explicit On
Option Strict On
Imports System.Data
Imports system.Data.SqlClient
Public Class NorthwindDataSet
Public Shared Sub Main()
Dim connectionString As String = _
GetConnectionString()
ConnectToData(connectionString)
End Sub
Private Shared Sub ConnectToData( _
ByVal connectionString As String)
' Create a SqlConnection to the Northwind database.
Using connection As SqlConnection = New SqlConnection( _
connectionString)
' Create a SqlDataAdapter for the Suppliers table.
Dim suppliersAdapter As SqlDataAdapter = _
New SqlDataAdapter()
' A table mapping names the DataTable.
suppliersAdapter.TableMappings.Add("Table", "Suppliers")
' Open the connection.
connection.Open()
Console.WriteLine("The SqlConnection is open.")
' Create a SqlCommand to retrieve Suppliers data.
Dim suppliersCommand As New SqlCommand( _
"SELECT SupplierID, CompanyName FROM dbo.Suppliers;", _
connection)
suppliersCommand.CommandType = CommandType.Text
' Set the SqlDataAdapter's SelectCommand.
suppliersAdapter.SelectCommand = suppliersCommand
' Fill the DataSet.
Dim dataSet As New DataSet("Suppliers")
suppliersAdapter.Fill(dataSet)
' Create a second SqlDataAdapter and SqlCommand to get
' the Products table, a child table of Suppliers.
Dim productsAdapter As New SqlDataAdapter()
productsAdapter.TableMappings.Add("Table", "Products")
Dim productsCommand As New SqlCommand( _
"SELECT ProductID, SupplierID FROM dbo.Products;", _
connection)
productsAdapter.SelectCommand = productsCommand
' Fill the DataSet.
productsAdapter.Fill(dataSet)
' Close the connection.
connection.Close()
Console.WriteLine("The SqlConnection is closed.")
' Create a DataRelation to link the two tables
' based on the SupplierID.
Dim parentColumn As DataColumn = _
dataSet.Tables("Suppliers").Columns("SupplierID")
Dim childColumn As DataColumn = _
dataSet.Tables("Products").Columns("SupplierID")
Dim relation As New DataRelation("SuppliersProducts", _
parentColumn, childColumn)
dataSet.Relations.Add(relation)
Console.WriteLine( _
"The {0} DataRelation has been created.", _
relation.RelationName)
End Using
End Sub
Private Shared Function GetConnectionString() As String
' To avoid storing the connection string in your code,
' you can retrieve it from a configuration file.
Return "Data Source=(local);Initial Catalog=Northwind;" _
& "Integrated Security=SSPI;"
End Function
End Class
Opmerkingen
Zie Aanvullende API-opmerkingen voor DataSet voor meer informatie over deze API.
Constructors
| Name | Description |
|---|---|
| DataSet() |
Initialiseert een nieuw exemplaar van de DataSet klasse. |
| DataSet(SerializationInfo, StreamingContext, Boolean) |
Initialiseert een nieuw exemplaar van de DataSet klasse met geserialiseerde gegevens. |
| DataSet(SerializationInfo, StreamingContext) |
Initialiseert een nieuw exemplaar van de DataSet klasse met geserialiseerde gegevens. |
| DataSet(String) |
Initialiseert een nieuw exemplaar van de DataSet klasse met de opgegeven naam. |
Eigenschappen
| Name | Description |
|---|---|
| CaseSensitive |
Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of tekenreeksvergelijkingen binnen DataTable objecten hoofdlettergevoelig zijn. |
| Container |
Hiermee haalt u de container voor het onderdeel op. (Overgenomen van MarshalByValueComponent) |
| DataSetName |
Hiermee haalt u de naam van de huidige DataSetop of stelt u deze in. |
| DefaultViewManager |
Hiermee wordt een aangepaste weergave opgehaald van de gegevens in de DataSet gegevens die zijn opgenomen om filteren, zoeken en navigeren met behulp van een aangepaste DataViewManagerweergave toe te staan. |
| DesignMode |
Hiermee wordt een waarde opgehaald die aangeeft of het onderdeel zich momenteel in de ontwerpmodus bevindt. (Overgenomen van MarshalByValueComponent) |
| EnforceConstraints |
Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of er beperkingenregels worden gevolgd bij het uitvoeren van een updatebewerking. |
| Events |
Hiermee haalt u de lijst met gebeurtenis-handlers op die aan dit onderdeel zijn gekoppeld. (Overgenomen van MarshalByValueComponent) |
| ExtendedProperties |
Hiermee haalt u de verzameling aangepaste gebruikersgegevens op die zijn gekoppeld aan de |
| HasErrors |
Hiermee wordt een waarde opgehaald die aangeeft of er fouten zijn in een van de DataTable objecten in dit DataSetobject. |
| IsInitialized |
Hiermee wordt een waarde opgehaald die aangeeft of de DataSet waarde is geïnitialiseerd. |
| Locale |
Hiermee haalt u de landinstellingen op die worden gebruikt om tekenreeksen in de tabel te vergelijken. |
| Namespace |
Hiermee haalt u de naamruimte van de DataSet. |
| Prefix |
Hiermee wordt een XML-voorvoegsel opgehaald of ingesteld dat de naamruimte van de DataSet. |
| Relations |
Hiermee haalt u de verzameling relaties op die tabellen koppelen en navigatie van bovenliggende tabellen naar onderliggende tabellen toestaan. |
| RemotingFormat |
Hiermee haalt u de serialisatie-indeling op voor de DataSet indeling die wordt gebruikt tijdens externe communicatie. |
| SchemaSerializationMode |
Hiermee haalt of stelt u een SchemaSerializationMode voor een DataSet. |
| Site |
Hiermee haalt u een op of stelt u een ISite voor de DataSet. |
| Tables |
Hiermee haalt u de verzameling tabellen op die zijn opgenomen in de DataSet. |
Methoden
| Name | Description |
|---|---|
| AcceptChanges() |
Hiermee worden alle wijzigingen doorgevoerd die zijn DataSet aangebracht sinds deze is geladen of sinds de laatste keer AcceptChanges() is aangeroepen. |
| BeginInit() |
Begint de initialisatie van een DataSet formulier dat wordt gebruikt op een formulier of wordt gebruikt door een ander onderdeel. De initialisatie vindt plaats tijdens runtime. |
| Clear() |
Hiermee wist u de DataSet gegevens door alle rijen in alle tabellen te verwijderen. |
| Clone() |
Kopieert de structuur van de DataSet, inclusief alle DataTable schema's, relaties en beperkingen. Kopieert geen gegevens. |
| Copy() |
Kopieert zowel de structuur als de gegevens hiervoor DataSet. |
| CreateDataReader() |
Retourneert een DataTableReader met één resultatenset per DataTable, in dezelfde volgorde als de tabellen worden weergegeven in de Tables verzameling. |
| CreateDataReader(DataTable[]) |
Retourneert een DataTableReader met één resultatenset per DataTable. |
| DetermineSchemaSerializationMode(SerializationInfo, StreamingContext) |
Bepaalt de SchemaSerializationMode voor een DataSet. |
| DetermineSchemaSerializationMode(XmlReader) |
Bepaalt de SchemaSerializationMode voor een DataSet. |
| Dispose() |
Alle resources die worden gebruikt door de MarshalByValueComponent. (Overgenomen van MarshalByValueComponent) |
| Dispose(Boolean) |
Publiceert de niet-beheerde resources die worden gebruikt door de MarshalByValueComponent beheerde resources en brengt eventueel de beheerde resources vrij. (Overgenomen van MarshalByValueComponent) |
| EndInit() |
Hiermee beëindigt u de initialisatie van een DataSet formulier dat wordt gebruikt in een formulier of wordt gebruikt door een ander onderdeel. De initialisatie vindt plaats tijdens runtime. |
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| GetChanges() |
Hiermee haalt u een kopie op van de DataSet kopie die alle wijzigingen bevat die eraan zijn aangebracht, omdat deze is geladen of sinds AcceptChanges() de laatste aangeroepen. |
| GetChanges(DataRowState) |
Hiermee haalt u een kopie op van het DataSet bestand met alle wijzigingen die zijn aangebracht sinds deze voor het laatst is geladen of omdat AcceptChanges() deze is aangeroepen, gefilterd op DataRowState. |
| GetDataSetSchema(XmlSchemaSet) |
Hiermee haalt u een kopie op van XmlSchemaSet de DataSet. |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetObjectData(SerializationInfo, StreamingContext) |
Hiermee wordt een serialisatie-informatieobject gevuld met de gegevens die nodig zijn voor het serialiseren van de DataSet. |
| GetSchemaSerializable() |
Retourneert een serialiseerbare XmlSchema instantie. |
| GetSerializationData(SerializationInfo, StreamingContext) |
Deserializeert de tabelgegevens uit de binaire of XML-stroom. |
| GetService(Type) |
Haalt de implementeerfunctie van de IServiceProvider. (Overgenomen van MarshalByValueComponent) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| GetXml() |
Retourneert de XML-weergave van de gegevens die zijn opgeslagen in de DataSet. |
| GetXmlSchema() |
Retourneert het XML-schema voor de XML-weergave van de gegevens die zijn opgeslagen in de DataSet. |
| HasChanges() |
Hiermee wordt een waarde opgehaald die aangeeft of er DataSet wijzigingen zijn, waaronder nieuwe, verwijderde of gewijzigde rijen. |
| HasChanges(DataRowState) |
Hiermee wordt een waarde opgehaald die aangeeft of de DataSet wijzigingen, inclusief nieuwe, verwijderde of gewijzigde rijen, zijn gefilterd op DataRowState. |
| InferXmlSchema(Stream, String[]) |
Hiermee past u het XML-schema van de opgegeven Stream waarde toe op de DataSet. |
| InferXmlSchema(String, String[]) |
Hiermee past u het XML-schema van het opgegeven bestand toe op de DataSet. |
| InferXmlSchema(TextReader, String[]) |
Hiermee past u het XML-schema van de opgegeven TextReader waarde toe op de DataSet. |
| InferXmlSchema(XmlReader, String[]) |
Hiermee past u het XML-schema van de opgegeven XmlReader waarde toe op de DataSet. |
| InitializeDerivedDataSet() |
Alle tabellengegevens van de DataSet deserialiseren vanuit de binaire of XML-stroom. |
| IsBinarySerialized(SerializationInfo, StreamingContext) |
Hiermee wordt de indeling van de geserialiseerde weergave van de |
| Load(IDataReader, LoadOption, DataTable[]) |
Vult een DataSet met waarden uit een gegevensbron met behulp van de opgegeven IDataReader, met behulp van een matrix met DataTable exemplaren om de schema- en naamruimtegegevens op te geven. |
| Load(IDataReader, LoadOption, FillErrorEventHandler, DataTable[]) |
Vult een DataSet met waarden uit een gegevensbron met behulp van de opgegeven IDataReader, met behulp van een matrix met DataTable exemplaren om de schema- en naamruimtegegevens op te geven. |
| Load(IDataReader, LoadOption, String[]) |
Vult een DataSet met waarden uit een gegevensbron met behulp van de opgegeven IDataReader, met behulp van een matrix met tekenreeksen om de namen voor de tabellen binnen de |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| Merge(DataRow[], Boolean, MissingSchemaAction) |
Hiermee wordt een matrix met DataRow objecten samengevoegd in het huidige DataSet, behouden of negeren van wijzigingen in het |
| Merge(DataRow[]) |
Hiermee wordt een matrix met DataRow objecten samengevoegd in de huidige DataSet. |
| Merge(DataSet, Boolean, MissingSchemaAction) |
Hiermee worden een opgegeven DataSet en het bijbehorende schema samengevoegd met het huidige |
| Merge(DataSet, Boolean) |
Hiermee worden een opgegeven DataSet en het bijbehorende schema samengevoegd in het huidige |
| Merge(DataSet) |
Hiermee worden een opgegeven DataSet en het bijbehorende schema samengevoegd in de huidige |
| Merge(DataTable, Boolean, MissingSchemaAction) |
Voegt een opgegeven DataTable en het bijbehorende schema samen in het huidige |
| Merge(DataTable) |
Hiermee worden een opgegeven DataTable en het bijbehorende schema samengevoegd in de huidige DataSet. |
| OnPropertyChanging(PropertyChangedEventArgs) |
Hiermee wordt de OnPropertyChanging(PropertyChangedEventArgs) gebeurtenis gegenereerd. |
| OnRemoveRelation(DataRelation) |
Treedt op wanneer een DataRelation object wordt verwijderd uit een DataTable. |
| OnRemoveTable(DataTable) |
Treedt op wanneer een DataTable wordt verwijderd uit een DataSet. |
| RaisePropertyChanging(String) |
Hiermee wordt een melding verzonden dat de opgegeven DataSet eigenschap bijna wordt gewijzigd. |
| ReadXml(Stream, XmlReadMode) |
Leest het XML-schema en de gegevens in het DataSet gebruik van de opgegeven Stream en XmlReadMode. |
| ReadXml(Stream) |
Leest het XML-schema en de gegevens in het DataSet opgegeven Streamgebruik. |
| ReadXml(String, XmlReadMode) |
Leest het XML-schema en de gegevens in het DataSet gebruik van het opgegeven bestand en XmlReadMode. |
| ReadXml(String) |
Leest het XML-schema en de gegevens in het DataSet opgegeven bestand. |
| ReadXml(TextReader, XmlReadMode) |
Leest het XML-schema en de gegevens in het DataSet gebruik van de opgegeven TextReader en XmlReadMode. |
| ReadXml(TextReader) |
Leest het XML-schema en de gegevens in het DataSet opgegeven TextReadergebruik. |
| ReadXml(XmlReader, XmlReadMode) |
Leest het XML-schema en de gegevens in het DataSet gebruik van de opgegeven XmlReader en XmlReadMode. |
| ReadXml(XmlReader) |
Leest het XML-schema en de gegevens in het DataSet opgegeven XmlReadergebruik. |
| ReadXmlSchema(Stream) | |
| ReadXmlSchema(String) |
Leest het XML-schema van het opgegeven bestand in de DataSet. |
| ReadXmlSchema(TextReader) |
Leest het XML-schema van de opgegeven TextReader in de DataSet. |
| ReadXmlSchema(XmlReader) |
Leest het XML-schema van de opgegeven XmlReader in de DataSet. |
| ReadXmlSerializable(XmlReader) |
Negeert kenmerken en retourneert een lege DataSet. |
| RejectChanges() |
Hiermee worden alle wijzigingen teruggedraaid die zijn DataSet aangebracht sinds deze is gemaakt of sinds de laatste keer AcceptChanges() is aangeroepen. |
| Reset() |
Wist alle tabellen en verwijdert alle relaties, refererende beperkingen en tabellen uit de DataSet. Subklassen moeten worden overschreven Reset() om een DataSet oorspronkelijke staat te herstellen. |
| ShouldSerializeRelations() |
Hiermee wordt een waarde opgehaald die aangeeft of Relations de eigenschap moet worden behouden. |
| ShouldSerializeTables() |
Hiermee wordt een waarde opgehaald die aangeeft of Tables de eigenschap moet worden behouden. |
| ToString() |
Retourneert een String met de naam van de Component, indien van toepassing. Deze methode mag niet worden overschreven. (Overgenomen van MarshalByValueComponent) |
| WriteXml(Stream, XmlWriteMode) |
Hiermee schrijft u de huidige gegevens en eventueel het schema voor het DataSet gebruik van de opgegeven Stream en XmlWriteMode. Als u het schema wilt schrijven, stelt u de waarde voor de |
| WriteXml(Stream) |
Hiermee schrijft u de huidige gegevens voor het DataSet gebruik van het opgegeven Stream. |
| WriteXml(String, XmlWriteMode) |
Hiermee schrijft u de huidige gegevens en eventueel het schema voor het DataSet opgegeven bestand met behulp van het opgegeven XmlWriteModebestand. Als u het schema wilt schrijven, stelt u de waarde voor de |
| WriteXml(String) |
Hiermee schrijft u de huidige gegevens voor het DataSet opgegeven bestand. |
| WriteXml(TextWriter, XmlWriteMode) |
Hiermee schrijft u de huidige gegevens en eventueel het schema voor het DataSet gebruik van de opgegeven TextWriter en XmlWriteMode. Als u het schema wilt schrijven, stelt u de waarde voor de |
| WriteXml(TextWriter) |
Hiermee schrijft u de huidige gegevens voor het DataSet gebruik van het opgegeven TextWriter. |
| WriteXml(XmlWriter, XmlWriteMode) |
Hiermee schrijft u de huidige gegevens en eventueel het schema voor het DataSet gebruik van de opgegeven XmlWriter en XmlWriteMode. Als u het schema wilt schrijven, stelt u de waarde voor de |
| WriteXml(XmlWriter) |
Hiermee schrijft u de huidige gegevens voor de DataSet opgegeven XmlWritergegevens. |
| WriteXmlSchema(Stream, Converter<Type,String>) |
Hiermee schrijft u de DataSet structuur als een XML-schema naar het opgegeven Stream object. |
| WriteXmlSchema(Stream) |
Hiermee schrijft u de DataSet structuur als een XML-schema naar het opgegeven Stream object. |
| WriteXmlSchema(String, Converter<Type,String>) |
Hiermee schrijft u de DataSet structuur als een XML-schema naar een bestand. |
| WriteXmlSchema(String) |
Hiermee schrijft u de DataSet structuur als een XML-schema naar een bestand. |
| WriteXmlSchema(TextWriter, Converter<Type,String>) |
Hiermee schrijft u de DataSet structuur als een XML-schema naar de opgegeven TextWriter. |
| WriteXmlSchema(TextWriter) |
Hiermee schrijft u de DataSet structuur als een XML-schema naar het opgegeven TextWriter object. |
| WriteXmlSchema(XmlWriter, Converter<Type,String>) |
Hiermee schrijft u de DataSet structuur als een XML-schema naar de opgegeven XmlWriter. |
| WriteXmlSchema(XmlWriter) |
Hiermee schrijft u de DataSet structuur als een XML-schema naar een XmlWriter object. |
gebeurtenis
| Name | Description |
|---|---|
| Disposed |
Voegt een gebeurtenis-handler toe om naar de Disposed gebeurtenis in het onderdeel te luisteren. (Overgenomen van MarshalByValueComponent) |
| Initialized |
Treedt op nadat de DataSet is geïnitialiseerd. |
| MergeFailed |
Treedt op wanneer een doel en bron DataRow dezelfde primaire-sleutelwaarde hebben en EnforceConstraints is ingesteld op waar. |
Expliciete interface-implementaties
| Name | Description |
|---|---|
| IListSource.ContainsListCollection |
Zie voor een beschrijving van dit lid ContainsListCollection. |
| IListSource.GetList() |
Zie voor een beschrijving van dit lid GetList(). |
| ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
Hiermee wordt een serialisatie-informatieobject gevuld met de gegevens die nodig zijn voor het serialiseren van de DataSet. |
| IXmlSerializable.GetSchema() |
Zie voor een beschrijving van dit lid GetSchema(). |
| IXmlSerializable.ReadXml(XmlReader) |
Zie voor een beschrijving van dit lid ReadXml(XmlReader). |
| IXmlSerializable.WriteXml(XmlWriter) |
Zie voor een beschrijving van dit lid WriteXml(XmlWriter). |
Van toepassing op
Veiligheid thread
Dit type is veilig voor leesbewerkingen met meerdere leesbewerkingen. U moet schrijfbewerkingen synchroniseren.