Я начинаю, когда дело доходит до ООП. Вчера я пытался читать некоторые MVVM/МОФ примеров и я, конечно, попасть в беду ... У меня есть некоторые проблемы с понять некоторые из кода ниже:Возможный способ инициализации конструктора/объекта
{
class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Addres { get; set; }
}
Это просто обычный класс Person, ничего на самом деле unusal здесь , Проблема заключается в том, что я не могу понять, ниже код:
private void SayHi_Click(object sender, RoutedEventArgs e)
{
Person person = new Person
{
FirstName=FirstName.Text,
LastName=LastName.Text,
Addres=Address.Text
};
часть, которую я не понимаю:
Person person = new Person
{
FirstName=FirstName.Text,
LastName=LastName.Text,
Addres=Address.Text
};
Я не уверен, что это именно то. Я думал, что каждый новый объект должен быть инициализирован следующим образом: Class class = new Class() ;. Почему нет() после «нового человека»? Вместо() имеем {}. Я знаю, что мы можем использовать стандартные, параметризованные, статические и частные конструкторы. Может ли кто-нибудь объяснить это мне? Аналогичная ситуация в ниже учебнике из CodeProject:
http://www.codeproject.com/Articles/165368/WPF-MVVM-Quick-Start-Tutorial
У нас есть песни Class
public class Song
{
#region Members
string _artistName;
string _songTitle;
#endregion
#region Properties
/// The artist name.
public string ArtistName
{
get { return _artistName; }
set { _artistName = value; }
}
/// The song title.
public string SongTitle
{
get { return _songTitle; }
set { _songTitle = value; }
}
#endregion
}
И мы, конечно же, вид Модель для этого класса:
public class SongViewModel
{
Song _song;
public Song Song
{
get
{
return _song;
}
set
{
_song = value;
}
}
public string ArtistName
{
get { return Song.ArtistName; }
set { Song.ArtistName = value; }
}
}
И снова, эта часть кода - это то, что я не могу понять:
public class SongViewModel
{
Song _song;
public Song Song
Что это за "Песня _song;" является? Это объект класса песни? И это недвижимость «Песня Песня» также странно ... Возможно, у меня есть недостаток знаний
Компилятор в C# был и будет с большей скоростью, разработанный, чтобы занять много рутинной работы из-за кодирования. Вещи, которые занимают много времени, потому что они выполняются все проклятое время, оптимизируются компилятором по сокращенному коду. Компилятор перезаписывает этот инициализатор объекта как CLS-совместимый, когда он генерирует IL из вашего кода. Есть много иллюзий к компилятору, каждая из которых больше радости, чем следующая. – Will
Песня _song является синтаксическим предпочтением. Всякий раз, когда я вижу примеры кода, которые используют знак подчеркивания, я переводил его в нижестоящую версию вместо подчеркивания. – Stunna