為什么我不能在這個區域變數帳戶中使用 if else 陳述句?在“if”里面我打算輸入代碼 IsActive = “Yes”,然后在“else”里面 IsActive = “No”。但是我在課堂上宣告的 IsActive 字串沒有出現/建議。
private void btnAdd_Click(object sender, EventArgs e)
{
UserAccount account = new UserAccount()
{
FirstName = txtFirstName.Text,
LastName = txtLastName.Text,
Email = txtEmail.Text,
TeamName = txtTeamName.Text,
Password = txtPassword.Text,
// IsActive = "Yes",
if (chkIsActive.Checked == true)
{
}
else
{
}
UserId = int.Parse(txtUserId.Text)
};
}
uj5u.com熱心網友回復:
您不能if else在物件初始化中使用陳述句。您只能在那里分配給公共可寫(即具有設定器的屬性)屬性。正如下面一條評論中所建議的,從 C# 9 開始,您還可以在使用物件初始化語法時設定僅初始化屬性。這些屬性只能在物件構造期間寫入,一旦物件構造階段完成,您就不能再寫入屬性了。無論 C# 語言版本如何,都不能在物件初始化中使用任何控制流陳述句。
您的代碼的作業版本如下:
string isActive = chkIsActive.Checked ? "Yes": "No";
var account = new UserAccount()
{
FirstName = txtFirstName.Text,
LastName = txtLastName.Text,
Email = txtEmail.Text,
TeamName = txtTeamName.Text,
Password = txtPassword.Text,
IsActive = isActive,
UserId = int.Parse(txtUserId.Text)
};
uj5u.com熱心網友回復:
您正在嘗試在類初始化程式中使用控制陳述句。你不能這樣做。
- 您可以使用三元運算子。
UserAccount account = new UserAccount()
{
FirstName = txtFirstName.Text,
LastName = txtLastName.Text,
Email = txtEmail.Text,
TeamName = txtTeamName.Text,
Password = txtPassword.Text,
//IsActive = "Yes",
IsActive = chkIsActive.Checked ? "Yes" : "No",
UserId = int.Parse(txtUserId.Text)
};
- 不要使用
boolVariable == true,只需使用 boolean 本身。唯一的例外是可為空的布林值。
uj5u.com熱心網友回復:
您可以通過幾種方式做到這一點,以下是使用三元條件設定屬性值的示例:
private void btnAdd_Click(object sender, EventArgs e)
{
UserAccount account = new UserAccount()
{
FirstName = txtFirstName.Text,
LastName = txtLastName.Text,
Email = txtEmail.Text,
TeamName = txtTeamName.Text,
Password = txtPassword.Text,
IsActive = chkIsActive.Checked ? "Yes" : "No",
UserId = int.Parse(txtUserId.Text)
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/487580.html
