Page d'Accueil

Structures intégrées : Le type booléen

 

Introduction

Comme vu dans des leçons précédentes, le type de données bool est utilisé pour représenter une valeur considérée comme vraie ou fausse. Dans .NET Framework, le type de données bool est représenté par la structure booléenne. La valeur vraie d'une variable bool est représentée par le champ TrueString et la valeur fausse est représentée par la variable  de membre FalseString. En d'autres termes, si true (ou false) est représenté comme chaîne, « true » (ou « false » » est le même que TrueString (ou FalseString).

 

Analyse d'une variable booléenne

Nous avons vu dans une leçon 8 que vous pourriez recouvrer la valeur d'une variable booléenne d'un utilisateur. Pour soutenir ceci, la structure booléenne est équipée d'une méthode statique appelée Parse. La méthode Boolean.Parse () est déclarée comme suit :

public static bool Parse(string value);

Cette méthode prend comme argument une chaîne de caractères. L'argument doit contenir le mot True (non sensible à lacasse ) ou le mot False. Si l'argument est passé comme « true », la méthode renvoie true. Si l'argument est « false », des retours de cette méthode est false. Voici un exemple :

using System;

class Program
{
    static int Main()
    {
        bool result = bool.Parse("TRUE");

        Console.WriteLine("Result: {0}", result);
        return 0;
    }
}

Ceci produirait :

Result: True
Press any key to continue . . .

En appelant la méthode Boolean.Parse () pour recouvrer la valeur d'une variable booléenne, si la valeur assurée est « TRUE » ou « FALSE », le compilateur la traiterait. Si la valeur est inadmissible, le programme produirait une erreur. Voici un exemple :

using System;

class Program
{
    static int Main()
    {
        bool HouseHas3Bedrooms = bool.Parse("ItHas3Bedrooms");

        Console.WriteLine("House has 3 bedrooms: {0}", HouseHas3Bedrooms);
        return 0;
    }
}

Pour éviter l'erreur, la structure booléenne fournit la méthode TryParse (). Sa syntaxe est :

public static bool TryParse(string value, out bool result);

Le premier argument est la valeur à analyser. Si cette valeur est valide, le deuxième argument tient la valeur vraie ou fausse de la première. Voici un exemple :

using System;

class Program
{
    static int Main()
    {
        bool alt;
        bool HouseHas3Bedrooms = bool.TryParse("True", out alt);

        Console.WriteLine("House has 3 bedrooms: {0}", HouseHas3Bedrooms);
        Console.WriteLine("Alternate value: {0}", alt);
        return 0;
    }
}

Ceci produirait :

House has 3 bedrooms: True
Alternate value: True
Press any key to continue . . .

Considérez cette autre version du même programme :

using System;

class Program
{
    static int Main()
    {
        bool alt;
        bool HouseHas3Bedrooms = bool.TryParse("False", out alt);

        Console.WriteLine("House has 3 bedrooms: {0}", HouseHas3Bedrooms);
        Console.WriteLine("Alternate value: {0}", alt);
        return 0;
    }
}

Ceci produirait :

House has 3 bedrooms: True
Alternate value: False
Press any key to continue . . .

Notez que le premier argument renvoie vrai bien qu'il ait été passé comme faux. Ceci signifie que, si la valeur du premier argument est valide, c'est le deuxième argument, pas le premier, qui contient le résultat. Si le premier argument est inadmissible, le deuxième argument renvoie une valeur fausse. Considérer la version suivante du programme :

using System;

class Program
{
    static int Main()
    {
        bool alt;
        bool HouseHas3Bedrooms = bool.TryParse("Don't Know", out alt);

        Console.WriteLine("House has 3 bedrooms: {0}", HouseHas3Bedrooms);
        Console.WriteLine("Alternate value: {0}", alt);
        return 0;
    }
}

Ceci produirait :

House has 3 bedrooms: False
Alternate value: False
Press any key to continue . . .

Comparaisons des variables booléennes

Dans C#, pour comparer les valeurs de deux variables booléennes pour l'égalité, vous pouvez utiliser l'opérateur égalité « = ». Voici un exemple :

using System;

class Program
{
    static int Main()
    {
        bool House1Has3Bedrooms = true;
        bool House2Has3Bedrooms = false;

        Console.WriteLine("House1 has 3 bedrooms: {0}", House1Has3Bedrooms);
        Console.WriteLine("House2 has 3 bedrooms: {0}", House2Has3Bedrooms);
        Console.WriteLine("House1 and House2 have the number of bedrooms: {0}",
            House1Has3Bedrooms == House2Has3Bedrooms);
        return 0;
    }
}

Ceci produirait :

House1 has 3 bedrooms: True
House2 has 3 bedrooms: False
House1 and House2 have the number of bedrooms: False
Press any key to continue . . .

Pour soutenir cette comparaison, la structure booléenne de .NET Framework est équipée de la méthode Equals (). Sa syntaxe est :

public bool Equals(bool obj);

Cette méthode prend un argument comme valeur ou variable booléenne à comparer à la variable qui l'a appelée. Voici un exemple de l'appel :

using System;

class Program
{
    static int Main()
    {
        bool House1Has3Bedrooms = false;
        bool House2Has3Bedrooms = false;

        Console.WriteLine("House1 has 3 bedrooms: {0}", House1Has3Bedrooms);
        Console.WriteLine("House2 has 3 bedrooms: {0}", House2Has3Bedrooms);
        Console.WriteLine("House1 and House2 have the number of bedrooms: {0}",
            House1Has3Bedrooms.Equals(House2Has3Bedrooms));
        return 0;
    }
}

Ceci produirait :

House1 has 3 bedrooms: False
House2 has 3 bedrooms: False
House1 and House2 have the number of bedrooms: True
Press any key to continue . . .

La méthode Equals () peut facilement s'appeler par une variable booléenne qui reçoit une autre variable booléenne comme argument. Si vous ne connaissez pas le type exact de valeur de l'argument, vous pouvez encore lui donner une valeur objet. Pour soutenir ceci, la méthode Equals () a une autre version dont la syntaxe est :

public override bool Equals(Object obj);

Cette version prend comme argument une variable qui est de n'importe quel type.

En plus de l'égalité, vous pouvez également comparer deux variables booléennes pour savoir si l'une est inférieur à l'autre. Pour soutenir ceci, la structure booléenne est équipée de la méthode  CompareTo (). Sa syntaxe est :

public int CompareTo(bool value);

Si le type de variable n'est pas nécessairement un type booléen, vous pouvez le donner comme valeur objet. Pour ce faire, vous pouvez utiliser l'autre version de la méthode CompareTo (). Sa syntaxe est :

public int CompareTo(Object obj);
  

Page d'Accueil Copyright © 2007-2008, Yevol