2013-06-28 5 views
3

Я работаю над функцией, которую я хотел бы определить более чем одним прототипом, и задавался вопросом, возможно ли это.Определить функцию с более чем 1 прототипом

Я знаю, что визуальные студии делают это для некоторых своих вызовов функций, но не были уверены, что это было что-то, что можно было сделать самостоятельно.

+2

могли бы вы дать пример кода того, что вы пытаетесь сделать? – Maciej

+0

Дополнение к ответам ниже: значение параметра по умолчанию - это функция .NET 3.5 C#. Я вижу, вы используете VS2010. http://stackoverflow.com/questions/3602234/c-sharp-default-parameters –

ответ

4

Да, вы можете overload функцию:

public void Function() { 

} 

public void Function(string argument) { 

} 

public void Function(string argument, string argument) { 

} 

Или вы можете использовать params:

public void Function(params string[] arguments) { 

} 

Вы можете вызвать функцию с помощью:

Function("argument1", "argument2", "argument3"); 
+0

Это прекрасно, именно то, что я хотел знать, спасибо. Как только это позволит мне, я выберу это как правильный ответ. –

+0

@IanOswald - без проблем :) –

0

Как писал Даррен, вы можете создавать перегрузки в C#

С введением дополнительных параметров и значений по умолчанию, некоторые из них могут быть сведены к одной реализации:

Например,

public void Foo(string param1, int param2) 
{ 
    ... 
} 

public void Foo(string param1) 
{ 
    Foo(param1, 12); 
} 

Может быть заменен

public void Foo(string param1, int param2 = 12) 
{ 
    ... 
}