相关疑难解决方法(0)

如何在C#中为委托类型的参数提供默认值?

在C#中,我们可以提供参数的默认值:

void Foo(int i =0) {}
Run Code Online (Sandbox Code Playgroud)

但是,当方法签名是:

void FooWithDelegateParam(Func<string,string> predicate)
{}
Run Code Online (Sandbox Code Playgroud)

我们如何传递默认参数:

void FooWithDelegateParam(Func<string,string> predicate = (string,string x)=> {return y;})
{}
Run Code Online (Sandbox Code Playgroud)

但这不会编译.那么,这样做的正确语法是什么?

注意:我正在尝试提供一种通过委托为输出字符串映射器指定输入字符串的方法,如果没有提供,我只想返回输入字符串.因此,对于实现这一目标的任何替代方法的建议也受到高度赞赏.谢谢.

c# syntax delegates optional-parameters

9
推荐指数
2
解决办法
5477
查看次数

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

我有一个方法,我想使用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.)

c# compiler-errors optional-parameters

6
推荐指数
1
解决办法
1181
查看次数