Size: a a a

2020 November 15

Anton Йцуе in unity3d.ru
OK386
только я не назвал бы это наследием, но ладно
Это и не наследование
источник

Anton Йцуе in unity3d.ru
Это ты грубо говоря имплементишь метод основываясь чисто на интерфейсе
источник

O

OK386 in unity3d.ru
ну да
источник

Anton Йцуе in unity3d.ru
Есть воркэранд для этого если язык не поддерживает дефолт имплементейшн - можно запилить статический метод в утилитарном классе и передать туда экземпляр интерфейса параметром
источник

S

Serg in unity3d.ru
Устанавливаю 2020.1.9. Протестирую работает или нет то что мне нужно.
источник

S

Serg in unity3d.ru
Anton Йцуе
Есть воркэранд для этого если язык не поддерживает дефолт имплементейшн - можно запилить статический метод в утилитарном классе и передать туда экземпляр интерфейса параметром
Что мне нужно... Есть несколько классов, в них реализована сериализация в БД. Стандартные методы, проверить существует ли таблица, создать если нет, сериализовать данные, дессериализовать. Я не хочу одно и то же писать в каждом классе. Как сделать чтобы реализация данных методов была в одном, а использовалась во всех нужных? При условии, что эти классы уже наследуются от базового, в который ничего подобного добавлять нельзя.
источник

Anton Йцуе in unity3d.ru
Serg
Что мне нужно... Есть несколько классов, в них реализована сериализация в БД. Стандартные методы, проверить существует ли таблица, создать если нет, сериализовать данные, дессериализовать. Я не хочу одно и то же писать в каждом классе. Как сделать чтобы реализация данных методов была в одном, а использовалась во всех нужных? При условии, что эти классы уже наследуются от базового, в который ничего подобного добавлять нельзя.
Атрибутами в сишарпе может можно?
источник

Anton Йцуе in unity3d.ru
Это же типа макросов?
источник

S

Serg in unity3d.ru
Anton Йцуе
Атрибутами в сишарпе может можно?
Та не, с атрибутами шляпа получится.
источник

O

OK386 in unity3d.ru
а зачем тебе эти функции реализовывать везде, может просто статическое обращение сделаешь. Типо класс для работы с базой данных в синглтон, а от него всё остальное
источник

O

OK386 in unity3d.ru
или они из суперкласса вызываются?
источник

Anton Йцуе in unity3d.ru
OK386
а зачем тебе эти функции реализовывать везде, может просто статическое обращение сделаешь. Типо класс для работы с базой данных в синглтон, а от него всё остальное
Я тоже подумал об этом.
источник

Anton Йцуе in unity3d.ru
И рефлексией както поля обходить
источник

Anton Йцуе in unity3d.ru
Хз аттрибутами вроде выглядит прилично

https://docs.microsoft.com/en-us/dotnet/api/system.serializableattribute?view=net-5.0
источник

Anton Йцуе in unity3d.ru
Большой плюс это что атрибуты будут валидироваться на этапе компиляции - если будет ошибка то она вывалится у тебя при компиляции, а не у юзера в раньайме
источник

S

Serg in unity3d.ru
OK386
а зачем тебе эти функции реализовывать везде, может просто статическое обращение сделаешь. Типо класс для работы с базой данных в синглтон, а от него всё остальное
Ну смотри, есть класс Игроки, класс Энтити. Для них на сервере реализована загрузка/сохранение в БД. Допустим мне надо добавить третий класс Итемы. И чтобы не заниматься копипастом ,как то быстро добавить возможности первых двух классов. Не заморачивайтесь на сериализации, это может быть просто метод вывода в консоль чисел от 1 до 10.
источник

O

OK386 in unity3d.ru
ну всё что ты перечислил довольно универсально, проверка таблицы, сериализация данных. Просто из всех трёх классов обращайся в один с параметрами - самое простое
источник

S

Serg in unity3d.ru
OK386
ну всё что ты перечислил довольно универсально, проверка таблицы, сериализация данных. Просто из всех трёх классов обращайся в один с параметрами - самое простое
Давай на простом примере
Есть три класса, в каждом метод
public void DevDebug()
{
Debug.Log("Test");
}
Теперь, нужно чтобы этот метод был реализован один раз где-то, а использовался в трех классах.
источник

O

OK386 in unity3d.ru
Serg
Давай на простом примере
Есть три класса, в каждом метод
public void DevDebug()
{
Debug.Log("Test");
}
Теперь, нужно чтобы этот метод был реализован один раз где-то, а использовался в трех классах.
в этом методе чтото меняется из класса в класс?
источник

S

Serg in unity3d.ru
OK386
в этом методе чтото меняется из класса в класс?
нет
источник