2012-03-03 2 views
1

Я новичок в C#, и я пытаюсь понять, в чем разница, когда вы проходите, и аргумент или аргумент в методе.Разное с методами

Я думаю, что я как-то понимаю. Если бы вы приняли аргумент, это было бы что-то вроде этого.

int numA = 4; 

int productA = squar(numA); 

Я просто не понимаю, как иметь метод, когда он не передает аргумент.

+1

Если вы сообщите нам, какой язык программирования вы знакомы, мы можем сказать, что различия между ним и C#. Теперь, как ваш вопрос сформулирован, похоже, что вы новичок в программировании. –

+0

Да Я новичок в программе и обучении. Я новичок в C#. Я знаю кое-что, но очень мало. – taylor1984

ответ

3

Ваш вопрос не очень понятно, и есть некоторые «продвинутые» возможности C#, которые могут прийти в игру, но в простой C#, при вызове метода каждый аргумент (в коде вызова) должен соответствовать параметру в объявлении метода. Вы можете объявить методы с несколькими параметрами, только один, или нет:

public void Foo() // No parameters 
{ 
    Console.WriteLine("Foo!"); 
} 

public void Bar(int x) // One parameter 
{ 
    Console.WriteLine("Bar!"); 
} 

public void Baz(int x, string y) // Two parameters 
{ 
    Console.WriteLine("Baz!"); 
} 

А потом призывающих их:

Foo(); // No arguments 
Bar(10); // One argument 
Baz(20, "second"); // Two arguments 

The типов аргументов должны быть совместимы с типами параметров в соответствующем объявлении метода.

+0

Итак, аргументы находятся внутри(), поэтому, если вы не хотите передавать Arugement, все, что у вас есть, это(), а не это (время). – taylor1984

+0

@ taylor1984: Точно. –

+0

Благодарим вас за объяснение – taylor1984

3

Если вы хотите использовать тот же метод с параметрами и без параметров, вам нужно написать перегрузку метода для этого. это не концепция C#, это часть объектно-ориентированного программирования.

public string Test() // No parameters 
    { 
     return "test method"; 
    } 

    public string Test(string testParam) // with parameters 
    { 
     return "test method with parameter " + testParam; 
    } 

так можно назвать,

Test(); 

Test("string parameter"); 

результат,

test method 
test method with parameter string parameter 
0

Если вы используете C# 4.0 и выше есть новая функция под названием необязательные параметры.

Допустим, у вас есть метод подписи, как этот

static void Method(int value = 1, string name = "Perl") 
{ 
    Console.WriteLine("value = {0}, name = {1}", value, name); 
} 


    Method(); //prints 1, Perl 


    Method(4);//prints 4, perl 


    Method("Dot"); // prints 1, Dot 


    Method(4, "Dot"); //prints 4, Dot 
Смежные вопросы