2

我正在尝试在 Unity 中进行一些游戏编程,因此我不得不选择 C# 或 Javascript 或 (Boo)。我选择 C# 是因为至少有不错的 IDE,而且实际上它比 Javascript 和面向对象快一点。无论如何,我宣布代表:

private delegate Object Instantiate_(Object ,Vector3 ,Quaternion );  

我收到编译器错误,告诉我我应该命名这些参数。有什么合乎逻辑的理由吗?我没有在任何地方使用它们,也没有提到它们,那么命名它们有什么意义呢?

4

1 回答 1

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"并将传递给第二个参数。

于 2012-05-20T18:08:58.303 回答