方法中的可选参数不是使用Rectangle编译时常量错误

use*_*322 6 c# compiler-errors optional-parameters

我有一个方法,我想使用Rectangle默认值为(1,1,1,1)的可选参数.

void Method(int i, int j = 1, Rectangle rect = new Rectangle(1,1,1,1)) {} //error
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?(我正在使用XNA,所以它是一个Microsoft.Xna.Framework.Rectangle.)

Ser*_*rvy 8

你没有.可选参数必须是编译时常量,而new Rectangle(1,1,1,1)不是编译时常量.

您可以有两个方法重载,一个没有矩形:

void Method(int i, int j = 1) 
{
    Method(i, j, new Rectangle(1,1,1,1)) 
}
Run Code Online (Sandbox Code Playgroud)