我以前习惯性地工作的开发人员之一,一直使用:
ConfigurationSettings.AppSettings["Foo"].ToString()
由于AppSettings集合项已经是字符串,所以它有点像我,但我想知道:在.net 1.0和1.1的古代时代,集合是否将其项目存储为类型Object,需要ToString()调用?
答案 0 :(得分:5)
不,AppSettings
始终是NameValueCollection
,其中string
键和string
值。
来源:MSDN
答案 1 :(得分:4)
正如约翰已经提到的,ConfigurationSettings.AppSettings
是一个NameValueCollection
,它将项目作为字符串返回。
就个人而言,我讨厌看到这种代码...人们将ToString()调用几乎所有属性,无论它是否首先返回一个字符串。不幸的是,我经常看到它。我的猜测是,它让人们感到安慰......不知何故,好像他们遵循建议的编写漂亮代码的指导方针。 :P
他们似乎没有意识到在Null对象上调用ToString()
会抛出异常。例如,在您的示例中,如果Configuration的AppSettings部分中不存在“Foo”键,则代码将抛出NullReferenceException
。
答案 2 :(得分:0)
没有1.1中的appsettings是NameValueCollection的字符串,我正在审查vs2003中的解决方案,我也在获取appsettings时找到ToString();也许这是开发者的习惯