2012-03-03 2 views
1

Je suis nouveau à C# et j'essaie de comprendre quelle est la différence lorsque vous passez et argument ou pas d'argument dans une méthode.Le différent avec les méthodes

Je pense que je comprends un peu. Serait-ce si vous passiez un argument, ce serait quelque chose comme ça. Je ne comprends tout simplement pas comment avoir une méthode où elle ne passe pas un argument.

+1

Si vous nous dire ce langage de programmation que vous connaissez, nous pouvons vous dire quelles sont les différences entre elle et C#. La façon dont votre question est formulée maintenant, il semble que vous êtes nouveau à la programmation entièrement. –

+0

Oui, je suis nouveau au programme et à l'apprentissage. Je suis nouveau à C# Je connais quelque chose mais très peu. – taylor1984

Répondre

3

Votre question n'est pas très clair, et il y a quelques fonctionnalités « avancées » de C# qui peuvent entrer en jeu, mais dans simples C#, lorsque vous appelez une méthode chaque argument (dans le code d'appel) doit correspondre à un paramètre dans la déclaration de méthode. Vous pouvez déclarer des méthodes avec plusieurs paramètres, un seul, ou pas:

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!"); 
} 

Et puis les appeler:

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

Les types des arguments doivent être compatibles avec les types de paramètres dans la déclaration de méthode correspondante.

+0

Ok donc les arguments sont dans le() donc si vous ne voulez pas passer un Arugement tout ce que vous auriez c'est() et non pas (le temps). – taylor1984

+0

@ taylor1984: Exactement. –

+0

Merci d'avoir expliqué – taylor1984

3

Si vous souhaitez utiliser la même méthode avec des paramètres et sans paramètres, vous devez écrire une surcharge de méthode pour cela. ce n'est pas un concept de C#, c'est une partie de la programmation orientée objet.

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

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

de sorte que vous pouvez appeler,

Test(); 

Test("string parameter"); 

résultat,

test method 
test method with parameter string parameter 
0

Si vous utilisez C# 4.0 et au-dessus il y a une nouvelle fonctionnalité appelée paramètres optionnels.

Disons que vous avez une signature de méthode comme celui-ci

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 
Questions connexes