LINUX.ORG.RU

обясните за c#

 


0

2

Добрый вечер, ЛОР! :)

А поясните за код, плиз

public class Library
{
    [XmlAttribute("id")]
    namespace avstplg
    {
        public uint Id { get; set; }
        public string FileName { get; set; }
    }
}

скажите, плиз, что тут происходит?
а еще что курили авторы и где это достать? %) В смысле, посоветуйте, плз, нормальное руководство, а не «для самых маленьких»(их сотни в инете)?

★★★★★

Последнее исправление: metawishmaster (всего исправлений: 4)

Ответ на: комментарий от Anoxemian

это прототип аттрибута тэга класса library, умеющего в два типа - unsigned int для id и string для filename

вот поэтому и спрашивал про «что почитать?»
спасибо, буду гуглить по ключевым словам :)

metawishmaster ★★★★★
() автор топика
Ответ на: комментарий от metawishmaster

на, читай уже. про геттеры и сеттеры ты в первый раз слышишь по жизни.

https://metanit.com/sharp/tutorial/3.4.php

зы. спижжж. из дельфей между прочим.

alysnix ★★★
()
Последнее исправление: alysnix (всего исправлений: 1)

Этот код не компилируется. Пространство имен - это верхний уровень и не может быть определено внутри класса.

using System.Xml.Serialization;

namespace avstplg
{
    public class Library
    {
        [XmlAttribute("id")]
        public uint Id { get; set; }
        public string FileName { get; set; }
    }
}

Id и FileName - свойства (Property). Пустые аксессоры (get set) будут сгенерированы компилятором, получится что-то вроде:

using System.Xml.Serialization;

namespace avstplg
{
    public class Library
    {
        private uint _id;
        private string _fileName;
        [XmlAttribute("id")]
        public uint Id 
        { 
          get => _id;
          set => _id = value; 
        }
        public string FileName
        { 
          get => _fileName;
          set => _fileName = value; 
        }
    }
}

XmlAttribute это атрибут. В других языках называется аннотацией. Предназначен для привязки метаданных к классам/свойствам/полям/методам. Конкретно этот инструктирует XmlSerializer о том, что свойство Id должно быть сериализовано в XML как атрибут id:

<Library id='...'>
 <FileName>...</FileName>
</Library>

Midael ★★★★★
()
Ответ на: комментарий от Midael

«Пустые аксессоры (get set) будут сгенерированы компилятором, получится что-то вроде:»

Спасибо! Под «что тут происходит?» я именно это и имел в виду :)

metawishmaster ★★★★★
() автор топика
Последнее исправление: metawishmaster (всего исправлений: 1)
Ответ на: комментарий от hibou

Геттер и сеттер же, автогенерируемые кажется

вот этого я и не знал - у меня самая няшная среда разработки это vim с подсветкой синтаксиса и плагином YCM %)

metawishmaster ★★★★★
() автор топика
Последнее исправление: metawishmaster (всего исправлений: 1)
Ответ на: комментарий от alysnix

Точно acessors появились в делфях? Мне просто казалось что концепция стара как первые ЯП, потому как даже на ассемблере они есть, гуглить Mutator method в английской вики.

anonymous
()