web-dev-qa-db-fra.com

Comment faire en méthode appeler un autre dans les classes?

Maintenant, j'ai deux classes allmethods.cs et caller.cs.

J'ai quelques méthodes dans la classe allmethods.cs. Je veux écrire du code dans caller.cs afin d'appeler une certaine méthode dans la classe allmethods.

Exemple sur le code:

public class allmethods
public static void Method1()
{
    // Method1
}

public static void Method2()
{
    // Method2
}

class caller
{
    public static void Main(string[] args)
    {
        // I want to write a code here to call Method2 for example from allmethods Class
    }
}

Comment puis-je y arriver?

52
Mina Hafzalla

Comme le Method2 est statique, il vous suffit d'appeler comme ceci:

public class AllMethods
{
    public static void Method2()
    {
        // code here
    }
}

class Caller
{
    public static void Main(string[] args)
    {
        AllMethods.Method2();
    }
}

S'ils se trouvent dans des espaces de noms différents, vous devrez également ajouter l'espace de noms de AllMethods à caller.cs dans une instruction using.

Si vous souhaitez appeler une méthode d'instance (non statique), vous avez besoin d'une instance de la classe pour appeler la méthode. Par exemple:

public class MyClass
{
    public void InstanceMethod() 
    { 
        // ...
    }
}

public static void Main(string[] args)
{
    var instance = new MyClass();
    instance.InstanceMethod();
}

Mettre à jour

À partir de C # 6, vous pouvez également y parvenir avec la directive using static pour appeler des méthodes statiques un peu plus gracieusement, par exemple:

// AllMethods.cs
namespace Some.Namespace
{
    public class AllMethods
    {
        public static void Method2()
        {
            // code here
        }
    }
}

// Caller.cs
using static Some.Namespace.AllMethods;

namespace Other.Namespace
{
    class Caller
    {
        public static void Main(string[] args)
        {
            Method2(); // No need to mention AllMethods here
        }
    }
}

Lectures supplémentaires

94
p.s.w.g