2013-12-03 5 views
0

У меня есть следующий класс свойство:Присвоить значение по умолчанию свойству

public String Url { get; set; } 

Я хотел бы, чтобы это вернуть значение по умолчанию в случае, если она не была определена.

Я не хочу возвращать String.Empty, когда он не определен.

Я использую NET 4.5.

Каков наилучший способ для этого?

Спасибо, Miguel

+1

Должно ли быть автоматическое свойство? –

+1

Что-то вроде [this] (http://stackoverflow.com/questions/40730/how-do-you-give-ac-sharp-auto-property-a-default-value) – spajce

+4

По умолчанию для типа строки является ' null', а не 'string.empty'. И вы должны сделать это в конструкторе. –

ответ

3

хорошо, чтобы быть честным, я не знаю, если это лучший answeer и хорошо это мой первый asweer здесь, но это, кроме точки. я whould сделать это как этот

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

теперь у вас есть строковое значение за имущество, которое имеет значение по умолчанию www.google.com

надеюсь, что это помогает

1

Просто установите значение по умолчанию в конструкторе класса.

public class MyClass 
{ 

    public MyClass() 
    { 
     MyProperty = 22; 
    } 


    public int MyProperty { get; set; } 

    ... 
} 
1

Вы можете создать поле подкладочный:

private string _url = "myUrl" 

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

Для не статическое поле, мы можем установить значение по умолчанию только после того, как объект будет создан. Даже когда мы вводим значение по умолчанию, свойство инициализируется после построения.

Для автоматических свойств конструктор - это лучшее место для инициализации. Возможно, вы можете сделать это в конструкторе по умолчанию, а затем при необходимости добавить дополнительные конструкторы.

Другим вариантом было бы использовать отражение - но это больше, чем перебор.

0

Вы можете инициализировать свойство внутри вашего конструктора по умолчанию И не забудьте вызвать конструктор по умолчанию внутри других конструкторов (в данном примере MyClass(int)), в противном случае поле не будет инициализирован.

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

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

    public String Url { get; set; } 
} 
Смежные вопросы