У меня есть класс, где одно из свойств возвращает List<object>
. Внутри этого списка я помещаю набор анонимных объектов.Неразумно ли использовать анонимный объект + динамический?
После этого у меня есть цикл, использующий этот объект как динамическую переменную.
Так что мой код выглядит следующим образом:
private List<object> BookerTypes
{
get
{
if (this.bookerTypes == null)
{
this.bookerTypes = new List<object>();
var com = new SqlConnection(functions.ConnectionString).CreateCommand();
com.CommandText = @"
SELECT
BT.id
, BT.name
FROM dbo.BookerTypes AS BT
ORDER BY BT.name ASC
";
com.Connection.Open();
try
{
using (var dr = com.ExecuteReader())
{
while (dr.Read())
{
this.bookerTypes.Add(new { id = dr.GetInt32(0), name = dr.GetString(1) });
}
}
}
finally
{
com.Connection.Close();
}
}
return this.bookerTypes;
}
}
[...]
this.cblSBT.Items.Clear();
foreach(dynamic bt in this.BookerTypes)
{
this.cblSBT.Items.Add(new ListItem()
{
Value = bt.id.ToString()
, Text = bt.name
, Selected = this.competition.SubscriptionTypes.Contains((int)bt.id)
});
}
Помимо очевидного потерянное сильно типизированных типа, есть ли причина, почему я не должен этого делать?
Считываемость, может быть? –
Представьте, что вы наследуете свой код от другого разработчика, вам нужно будет выполнить поиск, чтобы выяснить, что такое тип – Sayse