C# 如何在字符串插值中使用条件运算符?
我目前正在使用这种技术: 我想做一些类似的事情: 你可以这样用C# 如何在字符串插值中使用条件运算符?,c#,conditional-operator,c#-6.0,C#,Conditional Operator,C# 6.0,我目前正在使用这种技术: 我想做一些类似的事情: 你可以这样用 bool flag = true; string body = $"Dear {(flag ? "Mr." : "Mrs.")}"; 需要在表达式周围加括号,如下所示: string body=$“亲爱的{(user.Gender?”先生“:“Mrs.”}{user.First_name}…”; 原因是冒号表示某事物的格式字符串。您可以使用条件表达式周围的一对参数轻松
bool flag = true;
string body = $"Dear {(flag ? "Mr." : "Mrs.")}";
需要在表达式周围加括号,如下所示:
string body=$“亲爱的{(user.Gender?”先生“:“Mrs.”}{user.First_name}…”;
原因是冒号表示某事物的格式字符串。您可以使用条件表达式周围的一对参数轻松完成此操作,但更好的解决方案是通过在类上定义属性使问候语可重用:
public class User {
public string FirstName { get; set; }
public string LastName { get; set; }
public bool Gender { get; set; }
public string Title { get => Gender ? "Mr." : "Mrs."; }
public string Greeting { get => $"{Title} {FirstName} {LastName}"; }
}
void run()
{
var user = new User { Gender = true, FirstName = "John", LastName = "Smith" };
string simpleSolution = $"Dear {(user.Gender ? "Mr." : "Mrs.")} {user.FirstName} {user.LastName}, hello and welcome.";
string betterSolution = $"Dear {user.Greeting}, hello and welcome.";
}
使用括号表示:
$“亲爱的{(user.Gender?”先生:“:“Mrs.”}”
不是被否决的投票人,虽然这是一个很好的答案,但我认为OP只是想使用user.Gender
@MickyD中已经存在的标志。这只是一个例子,OP可以参考并相应地使用
bool flag = true;
string body = $"Dear {(flag ? "Mr." : "Mrs.")}";
public class User {
public string FirstName { get; set; }
public string LastName { get; set; }
public bool Gender { get; set; }
public string Title { get => Gender ? "Mr." : "Mrs."; }
public string Greeting { get => $"{Title} {FirstName} {LastName}"; }
}
void run()
{
var user = new User { Gender = true, FirstName = "John", LastName = "Smith" };
string simpleSolution = $"Dear {(user.Gender ? "Mr." : "Mrs.")} {user.FirstName} {user.LastName}, hello and welcome.";
string betterSolution = $"Dear {user.Greeting}, hello and welcome.";
}