2009-09-15 4 views
1

question fondamentale: Comment appeler une méthode statique dans une autre méthode? S'il vous plaît aider !!Puis-je appeler une méthode statique dans une autre méthode?

public static class Class1 
{ 
    public static string RenderCompareStatus() 
    { 
     bool isFound = Class1.Found(id); 
    } 

    private static bool Found(string id) 
    { 

    } 

// message d'erreur: ne contient pas de définition Trouvé

+0

Votre première phrase dans le corps est quelque peu descriptive, mais votre titre/sujet n'est pas descriptif. S'il vous plaît envisager de réviser. – Smandoli

+0

Bon, c'est un code minimal ici. J'ai fait les modifications suggérées dans le code. Mais ça ne marche toujours pas. –

+0

Found ne compilera pas jusqu'à ce que vous lui renvoyiez une valeur booléenne, l'appelant ne fonctionnera pas tant que vous ne l'aurez pas trié. –

Répondre

4

J'élargi votre échantillon dans un exemple entièrement:

using System; 

public static class Class1 
{ 
    public static void Main() 
    { 
     Console.WriteLine(RenderCompareStatus()); 
    } 

    public static string RenderCompareStatus() 
    { 
     String id = "test"; 
     bool isFound = Found(id); 
     return "Test: " + isFound; 
    } 

    private static bool Found(string id) 
    { 
     return false; 
    } 
} 

Et les résultats:

Test: False 

EDIT: Si l'exemple ci-dessus est similaire à votre code, mais votre code ne fonctionne pas, S'il vous plaît edit your question, fournissant plus de détails tels que l'erreur précise que vous obtenez et un exemple plus complet du code qui produit l'erreur.

EDIT: modification public static bool Found(string id) en private static bool Found(string id) recompilé et cela fonctionne toujours.

+0

Merci. Eh bien, cela fonctionne pour vous. C'est ce que j'ai fait et j'ai une erreur dans l'instruction suivante: bool isFound = Found (id); (ligne rouge sqiggly sous Trouvé ici) –

+0

@sa: J'ai testé cela en utilisant 'csc.exe' et Notepad, pas Visual Studio, mais vous ne devriez pas avoir d'erreurs de compilation, cela fonctionne comme écrit. Si vous passez la souris sur "Found()", que dit le popup? –

+0

D'accord, je vais essayer de le faire. Mais 1 question: Puis-je appeler une méthode statique dans une autre méthode statique qui est dans une classe statique en C# !! –

3

Vous utilisez le nom de classe par exemple Class1.Found

+6

@Tzury: Vous n'avez pas besoin d'utiliser le nom de la classe. –

2

Le code semble correct - si c'est votre code réel, et non pas seulement un exemple minimal, vous devez spécifier id (ou une autre variable) dans le cadre de RenderCompareStatus passer comme argument à Found.

0

Vous n'avez pas d'instruction de retour pour vos deux méthodes. Vous obtiendrez une erreur de compilation si vous ne spécifiez pas de valeur de retour pour une méthode non-vide.

Vous pouvez appeler une méthode statique avec Class1.Found (id). Mais si vous l'appelez de la même classe, vous pouvez omettre "Class1". avant l'appel.

Questions connexes