0

オプションのパラメータを使用してメソッドを機能させようとしています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:これ、デフォルトでnull許容型から基本型に変換できない型で問題になる可能性があります。(SpriteFont)fontそれでも「変換できません」が発生します。

UPD2:SpriteFontデフォルトでnull許容であることが判明しました。それでも、私は今、を操作する方法を知っていnonNullable?ます。

4

3 に答える 3

7

??演算子を使用することもできます。

f = font ?? defaultFont;
于 2012-10-23T02:18:31.503 に答える
4

使用.Value

f = font.HasValue ? font.Value : defaultFont;
于 2012-10-23T02:18:01.153 に答える
2

Nullableは、次の方法でnull不可型に変換できます。

  • (Type)variable;
  • variable.Value
于 2012-10-23T02:18:46.890 に答える