问题描述
我想拥有3个不同的函数,都称为“ AddField”,其中每个函数具有不同的参数。根据参数,语言将知道要调用哪个函数。如果将功能标记为“重载”,则Delphi会具有此概念。
void addField(int tableID,fieldID) {
addfield(tableID,fieldID,0)
}
void addField(int tableID,groupID) {
addfield(tableID,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);
}
解决方法
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);
}