如何从`Object?`nullable中取出一个对象?

use*_*322 0 c# nullable

我正在尝试使用可选参数SpriteFont = myFont工作制作方法.因为spritefont不是编译时常量,所以我不能使用它,所以我决定尝试SpriteFont? = null:

void MyMethod(int x, SpriteFont? font = null)
{
    SpriteFont f;
    if (font == null) f = defaultFont; else f = font; // Cannot convert type 'Microsoft.Xna.Framework.Graphics.SpriteFont?' to 'Microsoft.Xna.Framework.Graphics.SpriteFont'
}
Run Code Online (Sandbox Code Playgroud)

如何拿出我SpriteFontSpriteFont?

UPD:默认情况下,这可能是类型无法从可空转换为基类型的问题.(SpriteFont)font仍然导致"无法转换".

UPD2:SpriteFont默认情况下可以为空.不过,我现在知道如何使用nonNullable?.

rav*_*uya 7

您也可以使用??运营商:

f = font ?? defaultFont;
Run Code Online (Sandbox Code Playgroud)