Extension methods Dart是否有像c#这样的扩展方法?

Extension methods Dart是否有像c#这样的扩展方法?,extension-methods,dart,Extension Methods,Dart,你能用dart制作扩展方法吗?就像你在C中一样,例如: 用飞镖能做到这一点吗?我想扩展CssClassSet,使其具有一个交换(stringoldclass,stringnewclass)方法。还没有。参见。6年后,扩展功能终于出现了: 它们将包含在dart 2.6中是的,这是一个 语法如下所示: extension YourClass上的扩展名{ 无效函数(){ this.anyMember();//您可以使用'this'访问'YourClass'的'anyMember'。 anyMembe

你能用dart制作扩展方法吗?就像你在C中一样,例如:


用飞镖能做到这一点吗?我想扩展CssClassSet,使其具有一个
交换(stringoldclass,stringnewclass)
方法。

还没有。参见。

6年后,扩展功能终于出现了:

它们将包含在dart 2.6中是的,这是一个

语法如下所示:

extension YourClass上的扩展名{
无效函数(){
this.anyMember();//您可以使用'this'访问'YourClass'的'anyMember'。
anyMember();//您可以在不使用this的情况下访问'YourClass'的'anyMember'。
}
}
void main(){
你的类是你的变量;
yourVariable.yourFunction();//有效
}
您还可以扩展类型,如
int

void main(){
5.fancyPrint();
3.minusThree;//返回0
}
int上的扩展FancyInt{
void fancyPrint()=>print('幻数是$this');
int get minus three=>this-3;
}

您可以。

拒绝
在这种情况下,这是不明智的。这降低了吸引力<代码>已接受在这种情况下并不意味着什么。阅读Gilad Bracha在本期的评论。有一个更新,讨论现在被移动
void swap(this CssClassSet ccs, String oldClass, String newClass)
{
    ccs.remove(oldClass);
    ccs.add(newClass);
}