1

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

interface IXnaDraw
{
    void Draw(SpriteBatch SB);
}

我想传递一个Microsoft.Xna.Framework.Color-object,因为我改变了上下文,这需要将不同的配色方案应用于资产。

我尝试使用类似的nullable颜色对象

void Draw(SpriteBatch SB, Color? Col = null);

不接受默认参数,我收到我的类没有实现所述接口的错误。我也尝试使用类似的东西

void Draw(SpriteBatch SB, Color Col = Color.White);

这会调用一个错误说明

该值必须在编译时已知。

如何修复实现并拥有我的默认参数?谢谢

4

2 回答 2

2

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

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

或者

void Draw(SpriteBatch SB, [Optional]Color Col);
于 2013-08-15T15:53:22.437 回答
1

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

如果需要,您可以使单参数版本调用另一个重载。

于 2013-08-15T14:56:08.940 回答