C# ASP.Net Webforms - string - static vs static readonly
<p>I have hit a bit of confusion in regards to using these varibles within an ASP.Net application.</p>

<p><code>public static string Complete = "Complete";</code></p>

<p>As far i'm aware, this value will be global for all users, but the value is not guaranteed to exist due to the application pool recycling and the value is not assigned on recycle?</p>

<p><code>public static readonly string Complete = "Complete";</code></p>

<p>Does the <code>readonly</code> flag mean that the value is always available due to getting initialized with the static constructor of the class, meaning that the value will always be available?</p>

<p>As far as I'm aware, the following would happen in the <code>readonly</code> scenario:</p>

<ol>
<li>Access Variable
<ul>
<li>Is class constructed? No? Assign variable</li>
</ul></li>
<li>Application Restarts</li>
<li>Go to 1</li>
</ol>

<p>Is there any difference between the <code>readonly</code> and non-readonly version? I suppose we could also write it as follows to guarantee the variable:</p>

<p><code>public static string Complete { get { return "Complete"; } }</code></p>
