C#中流程控制的异常,高手》》

来源:百度知道 编辑:UC知道 时间:2024/06/08 04:17:39
代码如下:
public string this[string name]//索引器
{
get
{
foreach (DictionaryEntry x in H)
{
if (x.Value.ToString() == name)
return Convert.ToString(x.Key);
}
return " -1";
}

就上面这里,return"-1"写在foreach的大括号外,为什么在结束foreach()后不会执行最后的一行返回“-1”呢?
里边的那个return是退出到get{}区块内执行对吗?

if (x.Value.ToString() == name)
return Convert.ToString(x.Key);
当遇见符合条件的内容时,这个方法就整个返回了,就连 foreach 都不一定会执行完所有的循环

return Convert.ToString(x.Key);
是退出整个过程

首先,在H这个存储结构中如果存在它的value值的tostring方法与name相同的话,那么整个索引器就会返回对象的key值的Convert.ToString(x.Key);
只有在H中没有任何记录匹配的话,才会返回-1,设置-1是为了程序逻辑处理留下余地