编译这个简单的程序: class Program { static void Foo( Action bar ) { bar(); } static void Main( string[] args ) { Foo( () => Console.WriteLine( "42" ) ); } } 没有什么奇怪的。 如果我们在lambda函数体中发生错误: Foo( () => Console.LineWrite( "42" ) ); 编译器返回一个错误信息: error CS0117: 'System.Console' does not contain a definition for 'LineWrite' 到现在为止还挺好。 现在,让我们在调用Foo使用一个命名参数: Foo( bar: () => […]
我已经查看了命名参数Idiom和Boost :: Parameter库 。 每个人都有什么优势? 是否有理由相互select一个,或者在某些情况下,每个人都可以比另一个更好(如果是,在什么情况下)?
我在一个类中有这个函数: func multiply(factor1:Int, factor2:Int) -> Int{ return factor1 * factor2 } 我尝试使用这个函数调用函数: var multResult = calculator.multiply(9834, 2321) 问题是编译器希望它看起来更像这样: var multResult = calculator.multiply(9834, factor2: 2321) 为什么第一个导致错误?