繁体   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