注册 登录
编程论坛 C# 论坛

VS里Add-in开发错误提示GetLayerByName(string lyrName)不是所有的代码都有的代码路径都有返回值怎么改呢?求各位大神帮忙

吴兴会 发布于 2017-06-05 11:07, 2800 次点击
namespace GIStools
{
    public class search : ESRI.ArcGIS.Desktop.AddIns.Tool
    {

        private IApplication m_application;
        private static IMap map;
 
        public search()
        {
        }

        protected override void OnUpdate()
        {
             Enabled = ArcMap.Application != null;
        }
         public static ILayer GetLayerByName(string lyrName)
        {
             ILayer findLayer = null;
            IEnumLayer pEnumLayer = map.get_Layers();
             pEnumLayer.Reset();
             ILayer pLayer = pEnumLayer.Next();
             while (pLayer != null)
            {
                 if (pLayer.Name == lyrName)
                 {
                     findLayer = pLayer;
                }
               pLayer = pEnumLayer.Next();
                    return findLayer;
       }
            
        }
    }
}
3 回复
#2
YanceyCui2017-06-05 17:20
ILayer pLayer = pEnumLayer.Next();
while (pLayer != null)
考虑pLayer为null时不进入循环,也就无返回值了。
#3
leisiege2017-06-30 21:49
return 不能写到判断里面。
#4
leisiege2017-06-30 21:49
return 不能写到判断里面。
1