我有一個類,其中一個財產返回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