if else语句在里面(类视图=新类)

时间:2018-08-16 01:12:08

标签: c#

说实话,我在用c#中的if else语句感到麻烦,我是这种编程语言的初学者。我知道if else语句的基本知识。对此代码,我不确定该怎么办。

AccountCreateView view = new AccountCreateView()
{
    UserInfo = new UserInfoData()
    {
        if (view.ChangeRefCode == "5")
        {
            TransmissonCode = "0",
            DeliveryCode = "0"
        }
        else
        {
           TransmissonCode = "1",
            DeliveryCode = "1"
        }
    },
    UserLogin = new UserLoginData(),
    UserPassword1 = null,
    UserPassword2 = null,
};

如果我在Userinfo = new Userinfo中使用if语句,那么我的代码将变成红色。

请帮助我。我将不胜感激。预先感谢。

1 个答案:

答案 0 :(得分:2)

如果在对象初始化块内不允许使用语句。您只能将表达式放在=运算符的右侧。

您可以改用三元运算符:

UserInfo = new UserInfoData()
{
    TransmissonCode = view.ChangeRefCode == "5" ? "1" : "0",
    DeliveryCode = view.ChangeRefCode == "5" ? "1" : "0",
};

格式为x ? y : z的表达式,其中x是计算为bool重复的表达式,而yz是计算为兼容类型,如果y的计算结果为x,则计算为true,否则为z

您不能为view使用对象初始化程序:

AccountCreateView view = new AccountCreateView();
view.UserInfo = new UserInfoData() { <see first code snippet> };
view.UserLogin = new UserLoginData();
view.UserPassword1 = null;
view.UserPassword2 = null;