非可空引用类型的 if..else if..else 表达式
if..else if..else expression for non nullable reference types
我很好奇在赋值取决于 if..else if...else 表达式的情况下,如何创建一个简单的不可空引用类型。三元运算符非常适合简单的 if...else 情况,新的 C#8 switch 语法非常适合常量,但是 运行 时间呢?
例如,Kotlin 提供了这样的东西:
fun Test(value: Int) : String {
val num: Int = Random.nextInt(0, 100)
val message: String = if (value > num) { //message cannot be null here
"greater than"
} else if(value < num) {
"less than"
} else {
"equal to"
}
return message
}
那么对于 C# 不可空引用类型,我怎么能做同样的事情呢?我是否必须建立一个工厂来实例化这个不可为空的字符串?或者最初对 if..else if..else 块使用虚拟值?
变量不需要初始化,只要是definitely assigned。 IE。这是合法的
string Test(bool b){
string result;
if(b){ result = "true"}
else { result = "false"}
return result;
}
我很好奇在赋值取决于 if..else if...else 表达式的情况下,如何创建一个简单的不可空引用类型。三元运算符非常适合简单的 if...else 情况,新的 C#8 switch 语法非常适合常量,但是 运行 时间呢?
例如,Kotlin 提供了这样的东西:
fun Test(value: Int) : String {
val num: Int = Random.nextInt(0, 100)
val message: String = if (value > num) { //message cannot be null here
"greater than"
} else if(value < num) {
"less than"
} else {
"equal to"
}
return message
}
那么对于 C# 不可空引用类型,我怎么能做同样的事情呢?我是否必须建立一个工厂来实例化这个不可为空的字符串?或者最初对 if..else if..else 块使用虚拟值?
变量不需要初始化,只要是definitely assigned。 IE。这是合法的
string Test(bool b){
string result;
if(b){ result = "true"}
else { result = "false"}
return result;
}