角镖是否有重载方法的概念?

时间:2020-09-02 21:23:15

标签: angular-dart

我想拥有3个不同的函数,都称为“ AddField”,其中每个函数具有不同的参数。根据参数,语言将知道要调用哪个函数。如果将功能标记为“重载”,则Delphi会具有此概念。

  void addField(int tableID, fieldID) {
    addfield(tableID, fieldID, 0, 0)
  }

  void addField(int tableID, fieldID, groupID) {
    addfield(tableID, fieldID, groupID, 0)
  }

  void addField(int tableID, fieldID, groupID, size) {
    item = FieldItem();
    item.tableID = tableID;
    item.fieldID = fieldID;
    item.groupID = groupID;
    item.size = size;
    fieldlist.add(item);
  }

它们可以通过这种方式使用...

  void addClientFields(){
    addfield(tblIDClient, fldIDName, grpContact, 30);
    addfield(tblIDClient, fldIDActive);
    addfield(tblIDClient, fldIDDate, grpSettings);
  }

1 个答案:

答案 0 :(得分:1)

Dart没有Method overloading。您可以使用其他名称制作方法,也可以使用具有默认值的可选参数。

void addField(int tableID, fieldID, [int groupID = 0, int size = 0]) {
    item = FieldItem();
    item.tableID = tableID;
    item.fieldID = fieldID;
    item.groupID = groupID;
    item.size = size;
    fieldlist.add(item);
  }