簡體   English   中英

為屬性分配默認值

[英]Assign default value to property

我具有以下類屬性:

public String Url { get; set; }

我希望它在未定義的情況下返回默認值。

我不想在未定義時返回String.Empty。

我正在使用NET 4.5。

做這個的最好方式是什么?

謝謝米格爾

老實說,我不知道這是否是最好的答案,這是我在這里的第一個答案,但這不重要。 我會這樣做

class Class1
{
    string sUrl = "www.google.com";
    public string Url
    {
        get
        {
            return sUrl;
        }
        set
        {
            sUrl = value;
        }
    }
}

現在,該屬性后面有一個字符串值,該字符串值的默認值為www.google.com

希望這可以幫助

只需在類構造函數中設置默認值即可。

public class MyClass
{

     public MyClass()
     {
        MyProperty = 22;
     }


     public int MyProperty { get; set; }

     ...
}

您可以創建一個支持字段:

private string _url = "myUrl"

public String Url
{
    get { return _url; }
    set { _url = value; }
}

對於非靜態字段,我們只能在構造對象之后設置默認值。 即使我們內聯默認值,該屬性也會在構造后初始化。

對於自動屬性,構造函數是初始化的最佳位置。 也許您可以在默認構造函數中執行此操作,然后根據需要添加其他構造函數。

另一種選擇是使用反射-但這不算過分。

您可以在默認構造函數中初始化屬性,並且不要忘記在其他構造函數(在本示例中為MyClass(int) )中調用默認構造函數,否則該字段將不會初始化。

class MyClass
{
    public MyClass()
    {
        this.Url = "http://www.google.com";
    }

    public MyClass(int x)
        : this()
    {
    }

    public String Url { get; set; }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM