Sdílet prostřednictvím


Pole parametrů a tři tečky

Přednost param array pro řešení přetížené funkce volání byl změněn z spravované rozšíření c++ k Visual C++ 2010.

Spravované rozšíření a novou syntaxi neexistuje žádný explicitní podporu pro param array že C# a Visual Basic podpory. Místo toho jeden příznaky běžných matice s atributem, takto:

void Trace1( String* format, [ParamArray]Object* args[] );
void Trace2( String* format, Object* args[] );

Zatímco tyto obě vypadají stejně, ParamArray atribut tagy pro C# nebo jiných jazyků CLR jako matici, přičemž proměnná počet prvků s každou vyvolání. Změna chování v programech mezi novou syntaxi a spravuje rozšíření je rozlišení Přetížená funkce, ve které jedna instance prohlašuje Výpustek a druhý prohlašuje ParamArray atribut jako v následujícím příkladu poskytnuté podle Artur Laksberg.

int fx(...); // 1
int fx( [ParamArray] Int32[] ); // 2

Spravované rozšíření se třemi tečkami byl přednost přes atribut, který je přiměřené, protože atribut není formální aspekt jazyk. V nové syntaxe však param array je nyní podporována přímo v jazyce a ji má přednost nad se třemi tečkami protože více důrazně zadali. Proto v spravované rozšíření volání

fx( 1, 2 );

Převede na fx(…) v nové syntaxe se převádí ParamArray instance. Na chování programů závisí na vyvolání instance tři tečky nad je vypnuto pravděpodobnost ParamArray, budete muset upravit podpis nebo volání.

Viz také

Koncepty

Obecné jazykové změny