首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从C# 8 switch表达式返回到一个属性和两个本地声明的变量?

如何从C# 8 switch表达式返回到一个属性和两个本地声明的变量?
EN

Stack Overflow用户
提问于 2019-11-24 05:15:24
回答 1查看 64关注 0票数 0

我有一个运行良好的代码:

代码语言:javascript
复制
        var (msg, isCC, upd) = Settings.Mode switch
        {
            MO.Learn => ("Use this mode when you are first learning the phrases and their meanings.",
                                Settings.Cc == CC.H,
                                false),
            MO.Practice => ("Use this mode to help you memorize the phrases and their meanings.",
                                Settings.Cc == CC.H,
                                false),
            MO.Quiz => ("Use this mode to run a self marked test.",
                                Settings.Cc == CC.H,
                                true),
            _ => ("", false, false)
        };

但在实际的应用程序中,我想将一个值返回到一个属性中,该属性在这里的多个位置被赋值:

代码语言:javascript
复制
    string _modeMessage2;
    public string ModeMessage2 { get => _modeMessage2; set => SetProperty(ref _modeMessage2, value); }

尝试这样做不起作用:

代码语言:javascript
复制
        var (this.ModeMessage2, isCC, upd) = Settings.Mode switch
        {
            MO.Learn => ("Use this mode when you are first learning the phrases and their meanings.",
                                Settings.Cc == CC.H,
                                false),
            MO.Practice => ("Use this mode to help you memorize the phrases and their meanings.",
                                Settings.Cc == CC.H,
                                false),
            MO.Quiz => ("Use this mode to run a self marked test.",
                                Settings.Cc == CC.H,
                                true),
            _ => ("", false, false)
        };

有谁知道如何在不添加如下代码的情况下将值返回到ModeMesage2中?

代码语言:javascript
复制
ModeMessage2 = msg; 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-24 06:37:07

如果左边的所有项都是字段或属性,那么它将起作用,如果您随后尝试将其中一项更改为类似var isCC的表达式,则会得到一个编译器错误,说明您不能混合表达式和声明。

因此,不幸的是,这不受支持。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59012331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档