如何将C# 8 switch表达式转换为传统switch语句?
转换后的传统switch语句实现
以下是将原C# 8 switch表达式转换为传统switch语句的代码:
private static bool TryGetScaleTransform(FrameworkElement frameworkElement, out ScaleTransform scaleTransform) { scaleTransform = null; var layoutTransform = frameworkElement.LayoutTransform; switch (layoutTransform) { case TransformGroup transformGroup: scaleTransform = transformGroup.Children.OfType<ScaleTransform>().FirstOrDefault(); break; case ScaleTransform transform: scaleTransform = transform; break; default: scaleTransform = null; break; } return scaleTransform != null; }
说明
- 先初始化
scaleTransform为null,满足out参数必须赋值的语法要求 - 把
frameworkElement.LayoutTransform提取为局部变量,避免重复访问属性 - 用带类型模式匹配的传统switch语句,完全对应原表达式的分支逻辑
- 最终返回的判断逻辑和原代码保持一致
内容的提问来源于stack exchange,提问作者CKuttan
相关产品推荐
相关产品推荐

