powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Что лучше - dynamic или конкретный тип?
11 сообщений из 11, страница 1 из 1
Что лучше - dynamic или конкретный тип?
    #38435394
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня такое ощущение, что я пытаюсь использовать dynamic не для того, для чего его придумали.

Вобщем, есть выборка

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
this.MyCollection =
    obj.Items
    .Select(i => new
    {
      ...
    })
    .ToList()
    .AsReadOnly();



Поскольку я использовал анонимный тип, то непонятно, как это представить в свойстве, которому я хочу присвоить эту коллецию. Решил сделать так

Код: c#
1.
public IReadOnlyCollection<dynamic> MyCollection { get; set; }


По типу коллеции не заморачивайтесь. Вопрос - можно ли так сделать с генерик-типом и хорошо ли это? Может, это настолько плохо, что лучше придумать для этого типа отдельный тип? Но мне надоело на каждый чих делать по типу, который нужен только для того, чтобы временно подержать в себе объекты, пока их представление рассуёт по контролам. Думал, что анонимные типы от этого избавляют.
...
Рейтинг: 0 / 0
Что лучше - dynamic или конкретный тип?
    #38435424
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320,

не используй анонимный тип, используй не анонимный
...
Рейтинг: 0 / 0
Что лучше - dynamic или конкретный тип?
    #38435451
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот и я тоже попытался сейчас передать этот анонимный через дайнэмик в представление - а он заругался, что "у типа Object нет таких полей". Похоже, анонимные удобны только для того, чтобы после извлечения их тут же использовать без всяких передач... Надо ещё раз прочитать про анонимные и дженерики.

Но всё же, как вы избавляетесь от нужды постоянно писать простенькие типы для каждого пустякового извлечения по типу, как я выше написал? Или никак и каждый раз пишете простенький тип?
...
Рейтинг: 0 / 0
Что лучше - dynamic или конкретный тип?
    #38435455
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Но всё же, как вы избавляетесь от нужды постоянно писать простенькие типы для каждого пустякового извлечения по типу, как я выше написал? Или никак и каждый раз пишете простенький тип?
Tuple
...
Рейтинг: 0 / 0
Что лучше - dynamic или конкретный тип?
    #38435459
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320как вы избавляетесь от нужды постоянно писать простенькие типы
Кортеж - Tuple.
...
Рейтинг: 0 / 0
Что лучше - dynamic или конкретный тип?
    #38435486
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, кортеж, конечно, в этом случае решает, но содержит другой недостаток - имена свойств у него неинформативные: Item1, Item2,... А у анонимных типов - информативные. Есть способ это обойти?
...
Рейтинг: 0 / 0
Что лучше - dynamic или конкретный тип?
    #38435509
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Итого:

1) конкретные типы:

плюсы :

инофрмативные имена свойств;
могут легко работать с обобщёнными коллекциями;

минусы :

нужно выписывать определения таких типов на каждый чих;

2) анонимные типы:

плюсы :

информативные имена свойств;
не нужно выписывать определения;

минусы :

фиг знает, как работать с ними в обобщённых коллекциях;

3) кортежи:

плюсы :

не нужно выписывать определения;
могут легко работать с обобщёнными коллекциями;

минусы :

неинформативные имена свойств;
ограниченное число свойств.


А мне надо минимум:

могут легко работать с обобщёнными коллекциями;
информативные имена свойств;
не нужно выписывать определения.
...
Рейтинг: 0 / 0
Что лучше - dynamic или конкретный тип?
    #38435519
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Да, кортеж, конечно, в этом случае решает, но содержит другой недостаток - имена свойств у него неинформативные: Item1, Item2,... А у анонимных типов - информативные. Есть способ это обойти?
Сменить язык. В языках с паттерн-матчингом - F#, Nemerle - можно использовать туплы, при этом благодаря ПМ всё будет информативно.
...
Рейтинг: 0 / 0
Что лучше - dynamic или конкретный тип?
    #38435567
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320,
так анонимные типы, для места извлечения, хотя и можно их получать снаружи, но это уже из курьезов
Код: c#
1.
public IReadOnlyCollection<T> GetMyCollection (T t)
...
Рейтинг: 0 / 0
Что лучше - dynamic или конкретный тип?
    #38435639
Фотография Roslyn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
анонимные типы используются в контексте одного метода. в твоем случае лучше не лениться и написать отдельный тип для элементов коллекции
...
Рейтинг: 0 / 0
Что лучше - dynamic или конкретный тип?
    #38435681
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиuser7320,
так анонимные типы, для места извлечения, хотя и можно их получать снаружи, но это уже из курьезов
Код: c#
1.
public IReadOnlyCollection<T> GetMyCollection (T t)


Я забыл добавить, что писать что-то своё - это минус. Ну, это можно считать за "нужно выписывать определение". ))

Ладно, пока я успокоился на выписывании своего простенького типа.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Что лучше - dynamic или конкретный тип?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]