public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
// Default is required in any case.
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
为什么IDE会在双点“预期的分号”中说出来?
答案 0 :(得分:9)
条件运算符不是“short if form”...它是一个运算符,它根据第一个操作数的计算值来计算第三个操作数或第二个操作数。整个表达式的结果是任何操作数被评估的结果(在第2个/第3个之外),在必要时转换为结果类型(第2和第3个操作数必须是相同类型,或者必须有将一个隐式转换为另一个)。
您不能将它用作单独的语句,并且您当然不能将多个语句用作操作数。请注意,必须评估为某个值 - 如果Output
和DoSomethingElse
为void
方法,那么另一个原因导致您无法使用条件运算符。< / p>
就是不要这样做。如果需要if
语句的执行模型,请使用if
语句。
// I generally try to make conditions positive where possible. It's easier to read IMO.
if (myCondition == "true")
{
Output("true");
}
else
{
Output("false");
DoSomethingElse();
}
答案 1 :(得分:2)
这不是'if'的一般替代品。相反,它通常用于在两个值之间进行选择;
if (myCondition!="true")
{
output("false");
doSomethingElse();
}
else
{
output("true")
}
使用经典的if;
可以更好地表达你所做的事情output("false"); doSomethingElse();
你遇到的实际问题是你在第一个分支中包含了两个语句;
output("false") the language is expecting the
并且在这种形式下,您只能有一个语句,并且必须返回一个值。在$http.defaults.headers.common.Authorization = $window.sessionStorage.token
之后:`为else-value;你给它一个分号,它很困惑。