非可空引用类型的 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;
}