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)

[заблудился в трех строках бойлерплейта]

посоветуйте, плз, нормальное руководство, а не «для самых маленьких»

Тебе зачем?

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

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

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

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

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

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

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

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

спасибо, почитаю, а про геттеры/сеттеры я знаю только из Qt

private:
    T m_value;
public:
    T value();
    setValue(T&)

но тут все очевидно, в отличии от... %)

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

chatGPT 3.5 говорит, что это невалидный синтаксис (аттрибут неймспейса).

может, у него «база» старая? в смысле до 2018-го года, например?

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

As of 2023, GPT-3.5, available in the free version of ChatGPT, has knowledge of events that occurred up to January 2022

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

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

Автор у дельфей и шарпа один и тот же, если что.

amm
()

Объясняю за с# - с# нинужен:-)

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

про геттеры/сеттеры я знаю только из Qt

Так это тоже самое только на уровне синтаксиса языка, а не на уровне соглашений.

Loki13 ★★★★★
()

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

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 ★★★★★
()
Ответ на: комментарий от CrazyAlex25

Надо только не забывать en-us прописывать. Переводы почти все сделаны автоматом и люто кривые

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

chatGPT 3.5 говорит, что это невалидный синтаксис (аттрибут неймспейса).

ну да

namespace avstplg
{

я опустил, так-как проблеммка была глубже...

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

Самая лучшая дока - это официальная :)

спасибо, почитаю, как на это смотрят аффтары %)

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

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

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

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

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

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

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

понять и простить. потом забанить на ЛОР

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

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

anonymous
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.