我正在尝试在Unity中进行一些游戏编程,因此我不得不选择C#或Javascript或(Boo)。我之所以选择C#是因为它至少具有不错的IDE,实际上它比Javascript和面向对象快一点。无论如何,我正在宣布代表:
private delegate Object Instantiate_(Object ,Vector3 ,Quaternion );
我收到编译错误告诉我,我应该命名那些参数。任何合乎逻辑的理由?我没有在任何地方使用它们,我也没有引用它们,那么命名它们有什么意义呢?
答案 0 :(得分:2)
参数名称是必需的,因此您可以使用明确指定参数名称的调用语法:
public delegate object MakePersonDelegate(string firstName, string lastName, DateTime dateOfBirth);
MakePersonDelegate myDelegate = ...;
myDelegate(lastName: "Smith", firstName: "John", dateOfBirth: new DateTime(1985, 1, 1));
请注意此代码如何切换名字和姓氏;但是代理将以正确的顺序获取它们:"John"
将传递给委托的第一个形式参数,"Smith"
将传递给第二个参数。