リンクを保存しようとしている場合はそうのように、私は非常に、セマンティック名を使用してそれらを格納推薦:
var GoogleUrl = "http://www.google.com";
var YahooUrl = "http://www.yahoo.com";
<ul>
<li><a href="<%= link001 %>'>Google</a></li>
<li><a href="<%= link002 %>'>Yahoo</a></li>
etc.
</ul>
しかし、より良い解決策は、定数と静的クラスを作成することです(あなたは、コードにアクセスすることができますまたは読み取り専用フィールド):
、あなたのページのコードは次のように見てしまう
public static class Url
{
public const string Google = "http://www.google.com";
public const string Yahoo = "http://www.yahoo.com";
}
:
<ul>
<li><a href="<%= Url.Google %>'>Google</a></li>
<li><a href="<%= Url.Yahoo %>'>Yahoo</a></li>
etc.
</ul>
これは、URLの概念をカプセル化するもっと良い方法です。リストについては
、あなたは簡単にそうように、概念を拡張できます。もちろん
public static class UrlList
{
public static IEnumerable<string> List1
{
get
{
// Return the first list:
yield return Url.Google;
yield return Url.Yahoo;
}
}
public static IEnumerable<string> List2
{
get
{
// Return the first list:
yield return Url.Yahoo;
yield return Url.Goggle;
}
}
}
をこのような何かのために、一般的にプロパティをバックアップするために配列を使用することができますが、彼らは変更可能であり、 、それは良いことではありません(別のオプションはまだIEnumerable<string>
としてプロパティを公開するが、バッキングフィールドとしてReadOnlyCollection<string>
を使用して不変性を維持することになる、それを返すために、次のようになります。
public static class UrlList
{
///<summary>The backing field for <see cref="List1"/>.</summary>
private static readonly ReadOnlyCollection<string> list1 =
new ReadOnlyCollection<string>(new [] {
Url.Google,
Url.Yahoo,
});
public static IEnumerable<string> List1
{ get { return list1; } }
///<summary>The backing field for <see cref="List2"/>.</summary>
private static readonly ReadOnlyCollection<string> list2 =
new ReadOnlyCollection<string>(new [] {
Url.Yahoo,
Url.Google,
});
public static IEnumerable<string> List2
{ get { return list2; } }
}
これはそれを行うための一つの方法かもしれません:http://blog.devarchive.net/2008/01/auto- generate-strong-typed-navigation.html – Greg
このリストを別のXML(またはresx)ファイルに保存する方がはるかに良い方法でしょう。 –