我为我的资源创建了一个小接口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?谢谢
答案 0 :(得分:2)
我假设4.0或更高版本的.NET
void Draw(SpriteBatch SB, Color Col = default(Color));
或
void Draw(SpriteBatch SB, [Optional]Color Col);
答案 1 :(得分:1)
如果要接受第二个参数,则需要创建带有两个参数的方法的第二个重载 接口实现必须完全匹配; CLR无法识别可选参数。
如果您愿意,可以让单参数版本调用另一个重载。