我正在尝试使用可选参数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'
}
如何从SpriteFont
中取出SpriteFont?
?
UPD:此可能是默认情况下无法从可空转换为基本类型的类型的问题。 (SpriteFont)font
仍导致“无法转换”。
UPD2:结果SpriteFont
默认为可为空。不过,我现在知道如何使用nonNullable?
。
答案 0 :(得分:7)
您还可以使用??
运算符:
f = font ?? defaultFont;
答案 1 :(得分:4)
使用.Value
:
f = font.HasValue ? font.Value : defaultFont;
答案 2 :(得分:2)
Nullable可以通过以下方式转换为非可空类型:
(Type)variable
; variable.Value