Sophie

Sophie

distrib > Fedora > 14 > i386 > by-pkgid > 864d1c3c3cd8df4e3a2692faf8776e05 > files > 736

db4o-doc-7.4-2.fc13.i686.rpm

<html>
  <head>
    <META http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Usage of static fields</title>
    <link rel="stylesheet" type="text/css" href="../../../../style.css">
  </head>
  <body>
    <div class="CommonContent">
      <div class="CommonContentArea">
        <h1>Usage of static fields</h1><script>
//We attach this function to a browser object as a variable so that if multiple of these blocks are
//present on the same page, then they will simply over-write eachother with the same function instead
//of generating a naming collision.
window.WikiCodeFormattingCopyToClipboard = function copyToClipboard(sID){
	var sContent = document.getElementById(sID).innerText;
	if( window.clipboardData && clipboardData.setData )
	{
		clipboardData.setData("Text", sContent);
	}
	else
	{
		alert("You must enable javascript access to your clipboard for this feature to work. Please referr to your browser documentation or Google search for instructions.");
	}
}
</script>


<p>As an object database db4o can take advantage of programming language specifics such as static modifier. Why and where should it be used?</p>

<p>Usually static fields are used to store enums and constants. Obviously these objects can be stored in application code only, keeping database file smaller and decreasing memory consumption at runtime. But it can be not the best option in the case when the constant (enum) value can be changed in application lifecycle: the references from all the database objects will have to be updated explicitly.</p>

<p>Db4o suggests another approach to keeping constant values. For a class </p>



<span name="cs_wiki_filter" csw_filters="cs">

<div class="FormattedSourceCode"><div class="fscHeader"><span class="fscFileName">Car.cs</span></div><div class="fscCode"><pre ID="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsCar.Cs_Car.Cs_699_39"><div><!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><span style="color: #008080;">01</span><img id="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsCar.Cs_Car.Cs_699_39_0_67_Open_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedBlockStart.gif" align="top" onClick="this.style.display='none'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsCar.Cs_Car.Cs_699_39_0_67_Open_Text').style.display='none'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsCar.Cs_Car.Cs_699_39_0_67_Closed_Image').style.display='inline'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsCar.Cs_Car.Cs_699_39_0_67_Closed_Text').style.display='inline';"/><img id="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsCar.Cs_Car.Cs_699_39_0_67_Closed_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ContractedBlock.gif" align="top" style="display: none;" onClick="this.style.display='none'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsCar.Cs_Car.Cs_699_39_0_67_Closed_Text').style.display='none'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsCar.Cs_Car.Cs_699_39_0_67_Open_Image').style.display='inline'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsCar.Cs_Car.Cs_699_39_0_67_Open_Text').style.display='inline';"/><span id="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsCar.Cs_Car.Cs_699_39_0_67_Closed_Text" style="border: solid 1px #808080; background-color: #FFFFFF; display: none;">/**/</span><span id="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsCar.Cs_Car.Cs_699_39_0_67_Open_Text"><span style="color: #008000;">/*</span><span style="color: #008000;"> Copyright (C) 2004 - 2007 db4objects Inc. </span><span style="color: #008000; text-decoration: underline;">http://www.db4o.com</span><span style="color: #008000;"> </span><span style="color: #008000;">*/</span></span><span style="color: #000000;">
</span><span style="color: #008080;">02</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/None.gif" align="top"/></span><span style="color: #0000FF;">using</span><span style="color: #000000;"> System;
</span><span style="color: #008080;">03</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/None.gif" align="top"/></span><span style="color: #0000FF;">using</span><span style="color: #000000;"> System.Drawing;
</span><span style="color: #008080;">04</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/None.gif" align="top"/>
</span><span style="color: #008080;">05</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/None.gif" align="top"/></span><span style="color: #0000FF;">namespace</span><span style="color: #000000;"> Db4objects.Db4odoc.StaticFields
</span><span style="color: #008080;">06</span><span style="color: #000000;"><img id="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsCar.Cs_Car.Cs_699_39_147_197_Open_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedBlockStart.gif" align="top" onClick="this.style.display='none'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsCar.Cs_Car.Cs_699_39_147_197_Open_Text').style.display='none'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsCar.Cs_Car.Cs_699_39_147_197_Closed_Image').style.display='inline'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsCar.Cs_Car.Cs_699_39_147_197_Closed_Text').style.display='inline';"/><img id="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsCar.Cs_Car.Cs_699_39_147_197_Closed_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ContractedBlock.gif" align="top" style="display: none;" onClick="this.style.display='none'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsCar.Cs_Car.Cs_699_39_147_197_Closed_Text').style.display='none'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsCar.Cs_Car.Cs_699_39_147_197_Open_Image').style.display='inline'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsCar.Cs_Car.Cs_699_39_147_197_Open_Text').style.display='inline';"/></span><span id="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsCar.Cs_Car.Cs_699_39_147_197_Closed_Text" style="border: solid 1px #808080; background-color: #FFFFFF; display: none;">...</span><span id="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsCar.Cs_Car.Cs_699_39_147_197_Open_Text"><span style="color: #000000;">{
</span><span style="color: #008080;">07</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>  </span><span style="color: #0000FF;">public</span><span style="color: #000000;"> </span><span style="color: #0000FF;">class</span><span style="color: #000000;"> Car
</span><span style="color: #008080;">08</span><span style="color: #000000;"><img id="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsCar.Cs_Car.Cs_699_39_168_195_Open_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" onClick="this.style.display='none'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsCar.Cs_Car.Cs_699_39_168_195_Open_Text').style.display='none'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsCar.Cs_Car.Cs_699_39_168_195_Closed_Image').style.display='inline'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsCar.Cs_Car.Cs_699_39_168_195_Closed_Text').style.display='inline';"/><img id="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsCar.Cs_Car.Cs_699_39_168_195_Closed_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ContractedSubBlock.gif" align="top" style="display: none;" onClick="this.style.display='none'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsCar.Cs_Car.Cs_699_39_168_195_Closed_Text').style.display='none'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsCar.Cs_Car.Cs_699_39_168_195_Open_Image').style.display='inline'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsCar.Cs_Car.Cs_699_39_168_195_Open_Text').style.display='inline';"/>  </span><span id="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsCar.Cs_Car.Cs_699_39_168_195_Closed_Text" style="border: solid 1px #808080; background-color: #FFFFFF; display: none;">...</span><span id="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsCar.Cs_Car.Cs_699_39_168_195_Open_Text"><span style="color: #000000;">{
</span><span style="color: #008080;">09</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>    </span><span style="color: #0000FF;">public</span><span style="color: #000000;"> Color _color;
</span><span style="color: #008080;">10</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"/>  }</span></span><span style="color: #000000;">
</span><span style="color: #008080;">11</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedBlockEnd.gif" align="top"/>}</span></span></div></pre></div></div>

</span>

<span name="cs_wiki_filter" csw_filters="vb">

<div class="FormattedSourceCode"><div class="fscHeader"><span class="fscFileName">Car.vb</span></div><div class="fscCode"><pre ID="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsVB.ZipsCar.Vb_Car.Vb_802_39"><div><!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><span style="color: #008080;">1</span><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/None.gif" align="top"/><span style="color: #008000;">'</span><span style="color: #008000;"> Copyright (C) 2004 - 2007 db4objects Inc. http://www.db4o.com </span><span style="color: #008000;">
</span><span style="color: #008080;">2</span><span style="color: #008000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/None.gif" align="top"/></span><span style="color: #0000FF;">Imports</span><span style="color: #000000;"> System.Drawing
</span><span style="color: #008080;">3</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/None.gif" align="top"/>
</span><span style="color: #008080;">4</span><span style="color: #000000;"><img id="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsVB.ZipsCar.Vb_Car.Vb_802_39_89_210_Open_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedBlockStart.gif" align="top" onClick="this.style.display='none'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsVB.ZipsCar.Vb_Car.Vb_802_39_89_210_Open_Text').style.display='none'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsVB.ZipsCar.Vb_Car.Vb_802_39_89_210_Closed_Image').style.display='inline'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsVB.ZipsCar.Vb_Car.Vb_802_39_89_210_Closed_Text').style.display='inline';"/><img id="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsVB.ZipsCar.Vb_Car.Vb_802_39_89_210_Closed_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ContractedBlock.gif" align="top" style="display: none;" onClick="this.style.display='none'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsVB.ZipsCar.Vb_Car.Vb_802_39_89_210_Closed_Text').style.display='none'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsVB.ZipsCar.Vb_Car.Vb_802_39_89_210_Open_Image').style.display='inline'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsVB.ZipsCar.Vb_Car.Vb_802_39_89_210_Open_Text').style.display='inline';"/></span><span id="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsVB.ZipsCar.Vb_Car.Vb_802_39_89_210_Closed_Text" style="border: solid 1px #808080; background-color: #FFFFFF; display: none;">Namespace Db4objects</span><span id="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsVB.ZipsCar.Vb_Car.Vb_802_39_89_210_Open_Text"><span style="color: #0000FF;">Namespace</span><span style="color: #000000;"> Db4objects.Db4odoc.StaticFields
</span><span style="color: #008080;">5</span><span style="color: #000000;"><img id="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsVB.ZipsCar.Vb_Car.Vb_802_39_142_196_Open_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" onClick="this.style.display='none'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsVB.ZipsCar.Vb_Car.Vb_802_39_142_196_Open_Text').style.display='none'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsVB.ZipsCar.Vb_Car.Vb_802_39_142_196_Closed_Image').style.display='inline'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsVB.ZipsCar.Vb_Car.Vb_802_39_142_196_Closed_Text').style.display='inline';"/><img id="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsVB.ZipsCar.Vb_Car.Vb_802_39_142_196_Closed_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ContractedSubBlock.gif" align="top" style="display: none;" onClick="this.style.display='none'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsVB.ZipsCar.Vb_Car.Vb_802_39_142_196_Closed_Text').style.display='none'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsVB.ZipsCar.Vb_Car.Vb_802_39_142_196_Open_Image').style.display='inline'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsVB.ZipsCar.Vb_Car.Vb_802_39_142_196_Open_Text').style.display='inline';"/>    </span><span style="color: #0000FF;">Public</span><span style="color: #000000;"> </span><span id="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsVB.ZipsCar.Vb_Car.Vb_802_39_142_196_Closed_Text" style="border: solid 1px #808080; background-color: #FFFFFF; display: none;">Class Car</span><span id="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsVB.ZipsCar.Vb_Car.Vb_802_39_142_196_Open_Text"><span style="color: #0000FF;">Class</span><span style="color: #000000;"> Car
</span><span style="color: #008080;">6</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>        </span><span style="color: #0000FF;">Public</span><span style="color: #000000;"> _color </span><span style="color: #0000FF;">As</span><span style="color: #000000;"> Color
</span><span style="color: #008080;">7</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"/>    </span><span style="color: #0000FF;">End Class</span></span><span style="color: #000000;">
</span><span style="color: #008080;">8</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedBlockEnd.gif" align="top"/></span><span style="color: #0000FF;">End Namespace</span></span></div></pre></div></div>

</span>

<p>the color field can be set to Color enumeration value like that:</p>



<span name="cs_wiki_filter" csw_filters="cs">

<div class="FormattedSourceCode"><div class="fscHeader"><span class="fscFileName">StaticFieldExample.cs: <span class="fscMemberName">SetCar</span></span></div><div class="fscCode"><pre ID="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsStaticFieldExample.Cs_StaticFieldExample.Cs_SetCar_984_61"><div><!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><span style="color: #008080;">01</span><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/None.gif" align="top"/><span style="color: #0000FF;">public</span><span style="color: #000000;"> </span><span style="color: #0000FF;">static</span><span style="color: #000000;"> </span><span style="color: #0000FF;">void</span><span style="color: #000000;"> SetCar()
</span><span style="color: #008080;">02</span><span style="color: #000000;"><img id="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsStaticFieldExample.Cs_StaticFieldExample.Cs_SetCar_984_61_30_223_Open_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedBlockStart.gif" align="top" onClick="this.style.display='none'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsStaticFieldExample.Cs_StaticFieldExample.Cs_SetCar_984_61_30_223_Open_Text').style.display='none'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsStaticFieldExample.Cs_StaticFieldExample.Cs_SetCar_984_61_30_223_Closed_Image').style.display='inline'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsStaticFieldExample.Cs_StaticFieldExample.Cs_SetCar_984_61_30_223_Closed_Text').style.display='inline';"/><img id="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsStaticFieldExample.Cs_StaticFieldExample.Cs_SetCar_984_61_30_223_Closed_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ContractedBlock.gif" align="top" style="display: none;" onClick="this.style.display='none'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsStaticFieldExample.Cs_StaticFieldExample.Cs_SetCar_984_61_30_223_Closed_Text').style.display='none'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsStaticFieldExample.Cs_StaticFieldExample.Cs_SetCar_984_61_30_223_Open_Image').style.display='inline'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsStaticFieldExample.Cs_StaticFieldExample.Cs_SetCar_984_61_30_223_Open_Text').style.display='inline';"/>    </span><span id="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsStaticFieldExample.Cs_StaticFieldExample.Cs_SetCar_984_61_30_223_Closed_Text" style="border: solid 1px #808080; background-color: #FFFFFF; display: none;">...</span><span id="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsStaticFieldExample.Cs_StaticFieldExample.Cs_SetCar_984_61_30_223_Open_Text"><span style="color: #000000;">{
</span><span style="color: #008080;">03</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>      IObjectContainer db</span><span style="color: #000000;">=</span><span style="color: #000000;">Db4oFactory.OpenFile(Db4oFileName);
</span><span style="color: #008080;">04</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>      </span><span style="color: #0000FF;">try</span><span style="color: #000000;"> 
</span><span style="color: #008080;">05</span><span style="color: #000000;"><img id="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsStaticFieldExample.Cs_StaticFieldExample.Cs_SetCar_984_61_102_180_Open_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" onClick="this.style.display='none'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsStaticFieldExample.Cs_StaticFieldExample.Cs_SetCar_984_61_102_180_Open_Text').style.display='none'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsStaticFieldExample.Cs_StaticFieldExample.Cs_SetCar_984_61_102_180_Closed_Image').style.display='inline'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsStaticFieldExample.Cs_StaticFieldExample.Cs_SetCar_984_61_102_180_Closed_Text').style.display='inline';"/><img id="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsStaticFieldExample.Cs_StaticFieldExample.Cs_SetCar_984_61_102_180_Closed_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ContractedSubBlock.gif" align="top" style="display: none;" onClick="this.style.display='none'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsStaticFieldExample.Cs_StaticFieldExample.Cs_SetCar_984_61_102_180_Closed_Text').style.display='none'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsStaticFieldExample.Cs_StaticFieldExample.Cs_SetCar_984_61_102_180_Open_Image').style.display='inline'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsStaticFieldExample.Cs_StaticFieldExample.Cs_SetCar_984_61_102_180_Open_Text').style.display='inline';"/>      </span><span id="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsStaticFieldExample.Cs_StaticFieldExample.Cs_SetCar_984_61_102_180_Closed_Text" style="border: solid 1px #808080; background-color: #FFFFFF; display: none;">...</span><span id="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsStaticFieldExample.Cs_StaticFieldExample.Cs_SetCar_984_61_102_180_Open_Text"><span style="color: #000000;">{
</span><span style="color: #008080;">06</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>        Car car </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000FF;">new</span><span style="color: #000000;"> Car();
</span><span style="color: #008080;">07</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>        car._color </span><span style="color: #000000;">=</span><span style="color: #000000;"> Color.Green;
</span><span style="color: #008080;">08</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>        db.Set(car);
</span><span style="color: #008080;">09</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"/>      }</span></span><span style="color: #000000;"> 
</span><span style="color: #008080;">10</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>      </span><span style="color: #0000FF;">finally</span><span style="color: #000000;"> 
</span><span style="color: #008080;">11</span><span style="color: #000000;"><img id="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsStaticFieldExample.Cs_StaticFieldExample.Cs_SetCar_984_61_197_219_Open_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" onClick="this.style.display='none'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsStaticFieldExample.Cs_StaticFieldExample.Cs_SetCar_984_61_197_219_Open_Text').style.display='none'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsStaticFieldExample.Cs_StaticFieldExample.Cs_SetCar_984_61_197_219_Closed_Image').style.display='inline'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsStaticFieldExample.Cs_StaticFieldExample.Cs_SetCar_984_61_197_219_Closed_Text').style.display='inline';"/><img id="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsStaticFieldExample.Cs_StaticFieldExample.Cs_SetCar_984_61_197_219_Closed_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ContractedSubBlock.gif" align="top" style="display: none;" onClick="this.style.display='none'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsStaticFieldExample.Cs_StaticFieldExample.Cs_SetCar_984_61_197_219_Closed_Text').style.display='none'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsStaticFieldExample.Cs_StaticFieldExample.Cs_SetCar_984_61_197_219_Open_Image').style.display='inline'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsStaticFieldExample.Cs_StaticFieldExample.Cs_SetCar_984_61_197_219_Open_Text').style.display='inline';"/>      </span><span id="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsStaticFieldExample.Cs_StaticFieldExample.Cs_SetCar_984_61_197_219_Closed_Text" style="border: solid 1px #808080; background-color: #FFFFFF; display: none;">...</span><span id="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsCS.ZipsStaticFieldExample.Cs_StaticFieldExample.Cs_SetCar_984_61_197_219_Open_Text"><span style="color: #000000;">{
</span><span style="color: #008080;">12</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>        db.Close();
</span><span style="color: #008080;">13</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"/>      }</span></span><span style="color: #000000;">
</span><span style="color: #008080;">14</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedBlockEnd.gif" align="top"/>    }</span></span></div></pre></div></div>

</span>

<span name="cs_wiki_filter" csw_filters="vb">

<div class="FormattedSourceCode"><div class="fscHeader"><span class="fscFileName">StaticFieldExample.vb: <span class="fscMemberName">SetCar</span></span></div><div class="fscCode"><pre ID="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsVB.ZipsStaticFieldExample.Vb_StaticFieldExample.Vb_SetCar_1109_61"><div><!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><span style="color: #008080;">01</span><img id="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsVB.ZipsStaticFieldExample.Vb_StaticFieldExample.Vb_SetCar_1109_61_15_314_Open_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedBlockStart.gif" align="top" onClick="this.style.display='none'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsVB.ZipsStaticFieldExample.Vb_StaticFieldExample.Vb_SetCar_1109_61_15_314_Open_Text').style.display='none'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsVB.ZipsStaticFieldExample.Vb_StaticFieldExample.Vb_SetCar_1109_61_15_314_Closed_Image').style.display='inline'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsVB.ZipsStaticFieldExample.Vb_StaticFieldExample.Vb_SetCar_1109_61_15_314_Closed_Text').style.display='inline';"/><img id="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsVB.ZipsStaticFieldExample.Vb_StaticFieldExample.Vb_SetCar_1109_61_15_314_Closed_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ContractedBlock.gif" align="top" style="display: none;" onClick="this.style.display='none'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsVB.ZipsStaticFieldExample.Vb_StaticFieldExample.Vb_SetCar_1109_61_15_314_Closed_Text').style.display='none'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsVB.ZipsStaticFieldExample.Vb_StaticFieldExample.Vb_SetCar_1109_61_15_314_Open_Image').style.display='inline'; document.getElementById('ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsVB.ZipsStaticFieldExample.Vb_StaticFieldExample.Vb_SetCar_1109_61_15_314_Open_Text').style.display='inline';"/><span style="color: #0000FF;">Private</span><span style="color: #000000;"> </span><span style="color: #0000FF;">Shared</span><span style="color: #000000;"> </span><span id="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsVB.ZipsStaticFieldExample.Vb_StaticFieldExample.Vb_SetCar_1109_61_15_314_Closed_Text" style="border: solid 1px #808080; background-color: #FFFFFF; display: none;">Sub SetCar()</span><span id="ResourcesReferenceImplementation_StrategiesType_HandlingStatic_Fields_And_EnumsstaticfieldsVB.ZipsStaticFieldExample.Vb_StaticFieldExample.Vb_SetCar_1109_61_15_314_Open_Text"><span style="color: #0000FF;">Sub</span><span style="color: #000000;"> SetCar()
</span><span style="color: #008080;">02</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>            </span><span style="color: #0000FF;">Dim</span><span style="color: #000000;"> db </span><span style="color: #0000FF;">As</span><span style="color: #000000;"> IObjectContainer </span><span style="color: #000000;">=</span><span style="color: #000000;"> Db4oFactory.OpenFile(Db4oFileName)
</span><span style="color: #008080;">03</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>            </span><span style="color: #0000FF;">Try</span><span style="color: #000000;">
</span><span style="color: #008080;">04</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                </span><span style="color: #0000FF;">Dim</span><span style="color: #000000;"> car </span><span style="color: #0000FF;">As</span><span style="color: #000000;"> Car </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000FF;">New</span><span style="color: #000000;"> Car()
</span><span style="color: #008080;">05</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                car._color </span><span style="color: #000000;">=</span><span style="color: #000000;"> Color.Green
</span><span style="color: #008080;">06</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                db.Set(car)
</span><span style="color: #008080;">07</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>            </span><span style="color: #0000FF;">Finally</span><span style="color: #000000;">
</span><span style="color: #008080;">08</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                db.Close()
</span><span style="color: #008080;">09</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>            </span><span style="color: #0000FF;">End</span><span style="color: #000000;"> </span><span style="color: #0000FF;">Try</span><span style="color: #000000;">
</span><span style="color: #008080;">10</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedBlockEnd.gif" align="top"/>        </span><span style="color: #0000FF;">End Sub</span></span></div></pre></div></div>

</span>

<p>Now, when ObjectContainer is reopened and the green car is retrieved from the database, the static instances in RAM will be associated with the previously persisted instances using #bind() under the hood. So that the following check is possible:</p>

<p><code>car.color == Color.GREEN</code></p>

<p>This also means that ,if Color.GREEN constant will get another internal value (RGB(0,255,10) instead of RGB(0,255,0) for instance), all the references from the database will be associated with the new value.</p>

<p>Static field values are associated with their persistent identities only once, when an ObjectContainer is opened. After that they are not stored, unless the developer does it deliberately. Objects instantiation from the database does not create any more instances of static values.</p>

<p>Since each static field exists only once in the VM, there are no versioning, locking or multiuser access problems.</p></div>
    </div>
    <div id="footer">
					This revision (12) was last Modified 2007-09-16T11:52:00 by Tetyana.
				</div>
  </body>
</html>