问号后跟问号是什么意思,如果它在变量旁边?

时间:2018-12-10 18:56:09

标签: c# .net syntax ternary

我很清楚三元组。只是想知道以下代码行中“ l”旁边的问号是什么:

public static string GetRegion()
        {
            var ipAddress = GetIPAddress();
            if (string.IsNullOrEmpty(ipAddress))
            {
                return "";
            }

            try
            {
                var ls = new LookupService(HttpContext.Current.Server.MapPath("~") + "/GeoIP/GeoIPCity.dat", LookupService.GEOIP_STANDARD);
                var l = ls.getLocation(ipAddress);

                return l?.region ?? "";
            }
            catch (Exception)
            {
                return "";
            }
        } 

l?.region是什么? “”是什么意思?

1 个答案:

答案 0 :(得分:1)

这是 Null传播 Null Coalesce 运算符的混合,因此l?.region ?? "" region仅在l为不为null,并且如果l.region的值为null,则返回默认值为空字符串