текущее значение свойства в методе доступа get - PullRequest
0 голосов
/ 18 июля 2011

Как я могу получить текущее значение свойства во время работы блока доступа get?Я пытался разобраться с чем-то вроде этого:

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
public DateTime? birthDate
{
    get
    {
        return CommonClass.GetDT(birthDate);
    }
    set
    {
        birthDate = CommonClass.GetDT(value);
    }
}

public class CommonClass
{    
    public static DateTime? GetDT(DateTime v)
    {
        if (v == DateTime.MinValue)
        {
            return null;
        }
        else
        {
            return v;
        }
    }
    public static DateTime? GetDT(DateTime? v)
    {
        if (!v.HasValue)
        {
            return null;
        }
        else
        {
            return v;
        }
    }
}

Но этот код не работает.Но если вы посмотрите учебники Microsoft, вы увидите несколько примеров, которые позволяют использовать значение собственного свойства:

public string Name 
{
   get 
   {
      return name != null ? name : "NA";
   }
}

Здесь

Ответы [ 2 ]

4 голосов
/ 18 июля 2011

Имена переменных и методов чувствительны к регистру, что означает, что «имя» и «Имя» различаются.

private string name;   // the name field
public string Name   // the Name property
{
   get 
   {
      return name; 
   }
}

Так что измени свой на

private DateTime? birthDate
public DateTime? BirthDate
{
    get
    {
        return CommonClass.GetDT(birthDate);
    }
    set
    {
        birthDate = CommonClass.GetDT(value);
    }
}
1 голос
/ 18 июля 2011

Методы доступа get и set свойства являются просто методами.Они эквивалентны: -

public string get_Name()
{
    ...
}

public void set_Name(string value)
{
    ...
}

Когда вы думаете о них таким образом, вы можете видеть, что в них нет ничего особенного.Не существует специальных «self» или «current value».

Во втором примере кода должно быть поле с именем «name», которое используется для хранения значения свойства.Это и ничто иное, как «текущая стоимость» свойства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...