可空颜色 - 指定默认值

时间:2013-08-15 14:51:17

标签: c# interface xna nullable default-value

我为我的资源创建了一个小接口IXnaDraw,以确定如何在XNA中绘制自己。界面由单个方法

组成
interface IXnaDraw
{
    void Draw(SpriteBatch SB);
}

我希望传递Microsoft.Xna.Framework.Color - 对象,因为我更改了上下文,这需要将不同的颜色方案应用于资源。

我尝试使用

中的nullable颜色对象
void Draw(SpriteBatch SB, Color? Col = null);

不接受default-parameter,我得到的错误是我的类没有实现所述接口。我也尝试使用像

这样的东西
void Draw(SpriteBatch SB, Color Col = Color.White);

这会引发错误陈述

  

必须在编译时知道该值。

如何修复实现并使用我的default-parameter?谢谢

2 个答案:

答案 0 :(得分:2)

我假设4.0或更高版本的.NET

void Draw(SpriteBatch SB, Color Col = default(Color));

void Draw(SpriteBatch SB, [Optional]Color Col);

答案 1 :(得分:1)

如果要接受第二个参数,则需要创建带有两个参数的方法的第二个重载 接口实现必须完全匹配; CLR无法识别可选参数。

如果您愿意,可以让单参数版本调用另一个重载。