我有一個類,並將UID設置爲一個類屬性,因爲它在整個程序中的許多方法中使用,我不想不斷地傳遞一個值給它。我得到的問題是,當我運行context.Response.Write(uid)
並刷新頁面時,每次都獲得相同的值。獲取緩存的C#類屬性?
如果我將createRandomString()
移動到context.Response.Write(createRandomString())
,我每次重新加載時都會得到一個新的UID。
我對使用C#和來自PHP背景很陌生,這對我來說有點奇怪。我認爲設置一個類屬性會改變每一個負載。我認爲這可能與程序編譯時有關係,UID永久設置,但仍然沒有意義。財產是越來越設置
代碼:
public class Emailer : IHttpHandler {
// Define UID
static string uid = createRandomString();
CreateRandomString代碼:
public static string createRandomString() {
Guid g = Guid.NewGuid();
string GuidString = Convert.ToBase64String(g.ToByteArray());
GuidString = GuidString.Replace("=", "");
GuidString = GuidString.Replace("+", "");
return GuidString;
}
你uid屬性是一個靜態屬性,因此只加載時再次訪問一次,並且不會刷新。 – invalidusername
@invalidusername這是那些日子之一......我不明白它是如何在每次頁面重新加載時都沒有得到重置的。它是否像我想的那樣在編譯之後立即被設置? –
此外,這意味着你的領域(不是屬性雖然)只是初始化,當你第一次使用任何其成員引用你的類時,或者當第一次時該類是instantaited。這通常只發生一次。 – HimBromBeere