Page d'Accueil

Rangée d'Objets

 

Introduction

Comme une rangée primitive, une classe peut être déclarée et utilisée comme rangée. Il n'y a rien de significatif à faire en déclarant le champ. Assurez vous que vous lui donnez un nom approprié et ajoutez ses crochets. L'approche est identique à celle utilisée pour un type de données primitif.

 

Étude pratiqueÉtude pratique : Présentation des rangée d'objets dans la classe principale

  1. Pour créer un nouveau projet, sur le menu principal, cliquez fichier - > nouveau projet
  2. Dans la section des modèles, cliquez classe bibliothèque
  3. Placer le nom ItemManager et cliquez OK
  4. Dans Explorateur de solution, droit-cliquez Class1.cs et cliquez Renommer
  5. Change le nom en StoreItem.cs et appuyez Enter.
    Si une zone de dialogue s'affiche, lisez le texte et cliquez oui
  6. Changez le fichier comme suit :
     
    using System;
    
    namespace Business
    {
        interface IStoreInventory
        {
            long ItemNumber { get; set; }
            string ItemName { get; set; }
            decimal UnitPrice { get; set; }
        }
    }
    
    namespace ItemManager
    {
        public sealed class StoreItem : Business.IStoreInventory
        {
            private long itemNo;
            private string name;
            private decimal price;
    
            public long ItemNumber
            {
                get { return itemNo; }
                set { itemNo = value; }
            }
    
            public string ItemName
            {
                get { return name; }
                set { name = value; }
            }
    
            public decimal UnitPrice
            {
                get { return (price < 0) ? 0.00M : price; }
                set { price = value; }
            }
    
            public StoreItem()
            {
                this.itemNo = 0;
                this.name = "Unknown";
                this.price = 0.00M;
            }
    
            public StoreItem(long Nbr, string nm, decimal pr)
            {
                this.itemNo = Nbr;
                this.name = nm;
                this.price = pr;
            }
        }
    }
  7. Sauvegardez le projet, sur la barre d'outils standard, cliquez le bouton sauvegardez tout 
  8. Acceptez le nom comme ItemManager et cliquez Sauvegarder
  9. Pour créer la bibliothèque, sur le menu principal, cliquez Build- > Build Solution
  10. Pour créer une nouvelle application, dans Explorateur de solution, droit-cliquez la solution 'ItemManager' - > Ajouter - > nouveau projet…
  11. Dans les modèles sectionnés, cliquez l'application de console
  12. Placez le nom DepartmentStore6 et appuyez Enter
  13. Sauvegardez le projet, sur la barre d'outils standard, cliquez le bouton Sauvegarder tout 
  14. Indiquez le projet par défaut, dans Explorateur de solution, droit-cliquez DepartmentStore6 et cliquez Set As StartUp Project
  15. Pour importer l'assemblée précédemment créée, dans Explorateur de solution, droit-cliquez le noeud de références sous DepartmentStore6 et cliquez ajouter la référence…
  16. Cliquez Browse
  17. Localiser le dossier ItemManager et l'afficher le dans la boîte de menu déroulant Look In
  18. Localiser le fichier ItemManager.dll (il devrait être dans le sous dossier Release à l'intérieur du dossier bin de ItemManager) et le cliquer
  19. Cliquer OK
  20. Changez le fichier Program.cs comme suit :
     
    using System;
    
    namespace DepartmentStore6
    {
        class Program
        {
            static int Main(string[] args)
            {
                ItemManager.StoreItem dptStore = new ItemManager.StoreItem();
    
                Console.WriteLine("Department Store");
                Console.WriteLine("Item #:      {0}", dptStore.ItemNumber);
                Console.WriteLine("Description: {0}", dptStore.ItemName);
                Console.WriteLine("Unit Price:  {0:C}\n", dptStore.UnitPrice);
    
                return 0;
            }
        }
    }
  21. Exécutez l'application pour voir le résultat. Ceci produirait :
     
    Department Store
    Item #:      0
    Description: Unknown
    Unit Price:  $0.00
    
    Press any key to continue . . .
  22. Fermez la fenêtre DOS
 

Une Classe comme membre d'une Rangée d'une Variable 

Pour utiliser une classe comme membre d'une variable rangée de la classe principale, déclarez la rangée comme nous les avons utilisés jusqu'ici mais déclarez le statique. Par exemple, vous imaginer avoir créé une classe comme suit :

using System;

namespace CSharpLessons
{
    public class Square
    {
	private double _side;

	public Square() { _side = 0; }
	public double Side
	{
	    get { return _side; }
	    set { _side = value; }
	}
	public Double Perimeter
	{
	    get { return _side * 4; }
	}
	public double Area
	{
	    get { return _side * _side; }
	}
    }
}

Voici comment vous pouvez déclarer une variable rangée de la classe ci-dessus :

using System;

class Exercise
{
    static Square[] Sq = new Square[2];

    static void Main(string[] args)
    {

    }
}

Après la déclaration de la rangée, vous pouvez l'initialiser en utilisant fonction ¨Main(). Vous devriez d'abord assigner la mémoire en utilisant l'opérateur new pour chaque membre de la rangée. Chaque membre de la rangée est accédé en utilisant son index. Une fois que la rangée existe, vous pouvez accéder à chaque membre de la classe indirectement à partir de l'index de la variable. Voici un exemple :

using System;

class Exercise
{
    static Square[] Sq = new Square[2];

    static void Main(string[] args)
    {
	Sq[0] = new Square();
	Sq[0].Side = 18.84;

	Sq[1] = new Square();
	Sq[1].Side = 25.62;

	Console.WriteLine("Squares Characteristics");
	Console.WriteLine("\nFirst Square");
	Console.WriteLine("Side:      {0}", Sq[0].Side);
	Console.WriteLine("Perimeter: {0}", Sq[0].Perimeter);
	Console.WriteLine("Area:      {0}", Sq[0].Area);
			
	Console.WriteLine("\nSecond Square");
	Console.WriteLine("Side:      {0}", Sq[1].Side);
	Console.WriteLine("Perimeter: {0}", Sq[1].Perimeter);
	Console.WriteLine("Area:      {0}", Sq[1].Area);
    }
}

Ceci produirait :

Squares Characteristics

First Square
Side:      18.84
Perimeter: 75.36
Area:      354.9456

Second Square
Side:      25.62
Perimeter: 102.48
Area:      656.3844
 

Étude pratiqueÉtude pratique : Déclaration d'une variable rangée d'une classe

  1. Pour déclarer et utiliser une variable rangée des valeurs de StoreItem, changez le contenu de la méthode Main() de Exercise.cs comme suit:
     
    using System;
    
    namespace DepartmentStore6
    {
        class Program
        {
            static int Main(string[] args)
            {
                ItemManager.StoreItem[] anItem = new ItemManager.StoreItem[20];
    
                // We will use a string to categorize each item
                string Category;
    
                // Create the list of sales items
                anItem[0] = new ItemManager.StoreItem();
                anItem[0].ItemNumber = 947783;
                anItem[0].ItemName = "Double-faced wool coat    ";
                anItem[0].UnitPrice = 275.25M;
    
                anItem[1] = new ItemManager.StoreItem();
                anItem[1].ItemNumber = 934687;
                anItem[1].ItemName = "Floral Silk Tank Blouse   ";
                anItem[1].UnitPrice = 180.00M;
    
                anItem[2] = new ItemManager.StoreItem();
                anItem[2].ItemNumber = 973947;
                anItem[2].ItemName = "Push Up Bra               ";
                anItem[2].UnitPrice = 50.00M;
    
                anItem[3] = new ItemManager.StoreItem();
                anItem[3].ItemNumber = 987598;
                anItem[3].ItemName = "Chiffon Blouse            ";
                anItem[3].UnitPrice = 265.00M;
    
                anItem[4] = new ItemManager.StoreItem();
                anItem[4].ItemNumber = 974937;
                anItem[4].ItemName = "Bow Belt Skirtsuit        ";
                anItem[4].UnitPrice = 245.55M;
    
                anItem[5] = new ItemManager.StoreItem();
                anItem[5].ItemNumber = 743765;
                anItem[5].ItemName = "Cable-knit Sweater        ";
                anItem[5].UnitPrice = 45.55M;
    
                anItem[6] = new ItemManager.StoreItem();
                anItem[6].ItemNumber = 747635;
                anItem[6].ItemName = "Jeans with Heart Belt     ";
                anItem[6].UnitPrice = 25.65M;
    
                anItem[7] = new ItemManager.StoreItem();
                anItem[7].ItemNumber = 765473;
                anItem[7].ItemName = "Fashionable mini skirt    ";
                anItem[7].UnitPrice = 34.55M;
    
                anItem[8] = new ItemManager.StoreItem();
                anItem[8].ItemNumber = 754026;
                anItem[8].ItemName = "Double Dry Pants          ";
                anItem[8].UnitPrice = 28.55M;
    
                anItem[9] = new ItemManager.StoreItem();
                anItem[9].ItemNumber = 730302;
                anItem[9].ItemName = "Romantic Flower Dress     ";
                anItem[9].UnitPrice = 24.95M;
    
                anItem[10] = new ItemManager.StoreItem();
                anItem[10].ItemNumber = 209579;
                anItem[10].ItemName = "Cotton Polo Shirt         ";
                anItem[10].UnitPrice = 45.75M;
    
                anItem[11] = new ItemManager.StoreItem();
                anItem[11].ItemNumber = 267583;
                anItem[11].ItemName = "Pure Wool Cap             ";
                anItem[11].UnitPrice = 25.00M;
    
                anItem[12] = new ItemManager.StoreItem();
                anItem[12].ItemNumber = 248937;
                anItem[12].ItemName = "Striped Cotton Shirt      ";
                anItem[12].UnitPrice = 65.55M;
    
                anItem[13] = new ItemManager.StoreItem();
                anItem[13].ItemNumber = 276057;
                anItem[13].ItemName = "Two-Toned Ribbed Crewneck ";
                anItem[13].UnitPrice = 9.75M;
    
                anItem[14] = new ItemManager.StoreItem();
                anItem[14].ItemNumber = 267945;
                anItem[14].ItemName = "Chestnut Italian Shoes    ";
                anItem[14].UnitPrice = 165.75M;
    
                anItem[15] = new ItemManager.StoreItem();
                anItem[15].ItemNumber = 409579;
                anItem[15].ItemName = "Collar and Placket Jacket ";
                anItem[15].UnitPrice = 265.15M;
    
                anItem[16] = new ItemManager.StoreItem();
                anItem[16].ItemNumber = 467583;
                anItem[16].ItemName = "Country Coat Rugged Wear  ";
                anItem[16].UnitPrice = 35.55M;
    
                anItem[17] = new ItemManager.StoreItem();
                anItem[17].ItemNumber = 448937;
                anItem[17].ItemName = "Carpenter Jeans           ";
                anItem[17].UnitPrice = 24.95M;
    
                anItem[18] = new ItemManager.StoreItem();
                anItem[18].ItemNumber = 476057;
                anItem[18].ItemName = "Dbl-Cushion Tennis Shoes  ";
                anItem[18].UnitPrice = 48.75M;
    
                anItem[19] = new ItemManager.StoreItem();
                anItem[19].ItemNumber = 467945;
                anItem[19].ItemName = "Stitched Center-Bar Belt  ";
                anItem[19].UnitPrice = 32.50M;
    
                // Display the inventory
                Console.WriteLine("Store Inventory");
    	    Console.WriteLine("=======+==========+===========" +
    				"================+=========");
    	    Console.WriteLine("Item # | Category | Description" +
    				"               | Price");
                for (int i = 0; i < 20; i++)
                {
                    // Any item whose number starts with 9 
    		// is categorized as "Women"
                    if (anItem[i].ItemNumber >= 900000)
                        Category = " Women";
                    // Any item whose number starts with 7 is for teenage girls
                    else if (anItem[i].ItemNumber >= 700000)
                        Category = " Girls";
                    // Items whose number start with 4 are for teenage boyes
                    else if (anItem[i].ItemNumber >= 400000)
                        Category = " Boys ";
                    else
                        Category = " Men  ";
    
    		Console.WriteLine("-------+----------+-----------" +
    				  "----------------+---------");
                    Console.WriteLine("{0} | {1}   | {2}| {3}",
                                      anItem[i].ItemNumber, Category,
                        		  anItem[i].ItemName, anItem[i].UnitPrice);
                }
    
    	    Console.WriteLine("=======+==========+=============" +
    				"==============+=========\n");
                return 0;
            }
        }
    }
  2. Exécutez l'application. Ceci produirait:
     
    Store Inventory
    =======+==========+===========================+=========
    Item # | Category | Description               | Price
    -------+----------+---------------------------+---------
    947783 |  Women   | Double-faced wool coat    | 275.25
    -------+----------+---------------------------+---------
    934687 |  Women   | Floral Silk Tank Blouse   | 180.00
    -------+----------+---------------------------+---------
    973947 |  Women   | Push Up Bra               | 50.00
    -------+----------+---------------------------+---------
    987598 |  Women   | Chiffon Blouse            | 265.00
    -------+----------+---------------------------+---------
    974937 |  Women   | Bow Belt Skirtsuit        | 245.55
    -------+----------+---------------------------+---------
    743765 |  Girls   | Cable-knit Sweater        | 45.55
    -------+----------+---------------------------+---------
    747635 |  Girls   | Jeans with Heart Belt     | 25.65
    -------+----------+---------------------------+---------
    765473 |  Girls   | Fashionable mini skirt    | 34.55
    -------+----------+---------------------------+---------
    754026 |  Girls   | Double Dry Pants          | 28.55
    -------+----------+---------------------------+---------
    730302 |  Girls   | Romantic Flower Dress     | 24.95
    -------+----------+---------------------------+---------
    209579 |  Men     | Cotton Polo Shirt         | 45.75
    -------+----------+---------------------------+---------
    267583 |  Men     | Pure Wool Cap             | 25.00
    -------+----------+---------------------------+---------
    248937 |  Men     | Striped Cotton Shirt      | 65.55
    -------+----------+---------------------------+---------
    276057 |  Men     | Two-Toned Ribbed Crewneck | 9.75
    -------+----------+---------------------------+---------
    267945 |  Men     | Chestnut Italian Shoes    | 165.75
    -------+----------+---------------------------+---------
    409579 |  Boys    | Collar and Placket Jacket | 265.15
    -------+----------+---------------------------+---------
    467583 |  Boys    | Country Coat Rugged Wear  | 35.55
    -------+----------+---------------------------+---------
    448937 |  Boys    | Carpenter Jeans           | 24.95
    -------+----------+---------------------------+---------
    476057 |  Boys    | Dbl-Cushion Tennis Shoes  | 48.75
    -------+----------+---------------------------+---------
    467945 |  Boys    | Stitched Center-Bar Belt  | 32.50
    =======+==========+===========================+=========
    
    Press any key to continue . . .
  3. Fermez la fenêtre DOS
  4. Pour pouvoir traiter un ordre, changez le fichier comme suit:
     
    using System;
    
    namespace DepartmentStore6
    {
        class Program
        {
            static int Main(string[] args)
            {
        ItemManager.StoreItem[] anItem = new ItemManager.StoreItem[20];
    
                // We will use a string to categorize each item
                string Category = "Unknown";
                long ItemID = 0;
                string Description = "Unknown";
                decimal Price = 0.00M;
    
                // Create the list of sales items
                anItem[0] = new ItemManager.StoreItem();
                anItem[0].ItemNumber = 947783;
                anItem[0].ItemName = "Double-faced wool coat    ";
                anItem[0].UnitPrice = 275.25M;
    
                anItem[1] = new ItemManager.StoreItem();
                anItem[1].ItemNumber = 934687;
                anItem[1].ItemName = "Floral Silk Tank Blouse   ";
                anItem[1].UnitPrice = 180.00M;
    
                anItem[2] = new ItemManager.StoreItem();
                anItem[2].ItemNumber = 973947;
                anItem[2].ItemName = "Push Up Bra               ";
                anItem[2].UnitPrice = 50.00M;
    
                anItem[3] = new ItemManager.StoreItem();
                anItem[3].ItemNumber = 987598;
                anItem[3].ItemName = "Chiffon Blouse            ";
                anItem[3].UnitPrice = 265.00M;
    
                anItem[4] = new ItemManager.StoreItem();
                anItem[4].ItemNumber = 974937;
                anItem[4].ItemName = "Bow Belt Skirtsuit        ";
                anItem[4].UnitPrice = 245.55M;
    
                anItem[5] = new ItemManager.StoreItem();
                anItem[5].ItemNumber = 743765;
                anItem[5].ItemName = "Cable-knit Sweater        ";
                anItem[5].UnitPrice = 45.55M;
    
                anItem[6] = new ItemManager.StoreItem();
                anItem[6].ItemNumber = 747635;
                anItem[6].ItemName = "Jeans with Heart Belt     ";
                anItem[6].UnitPrice = 25.65M;
    
                anItem[7] = new ItemManager.StoreItem();
                anItem[7].ItemNumber = 765473;
                anItem[7].ItemName = "Fashionable mini skirt    ";
                anItem[7].UnitPrice = 34.55M;
    
                anItem[8] = new ItemManager.StoreItem();
                anItem[8].ItemNumber = 754026;
                anItem[8].ItemName = "Double Dry Pants          ";
                anItem[8].UnitPrice = 28.55M;
    
                anItem[9] = new ItemManager.StoreItem();
                anItem[9].ItemNumber = 730302;
                anItem[9].ItemName = "Romantic Flower Dress     ";
                anItem[9].UnitPrice = 24.95M;
    
                anItem[10] = new ItemManager.StoreItem();
                anItem[10].ItemNumber = 209579;
                anItem[10].ItemName = "Cotton Polo Shirt         ";
                anItem[10].UnitPrice = 45.75M;
    
                anItem[11] = new ItemManager.StoreItem();
                anItem[11].ItemNumber = 267583;
                anItem[11].ItemName = "Pure Wool Cap             ";
                anItem[11].UnitPrice = 25.00M;
    
                anItem[12] = new ItemManager.StoreItem();
                anItem[12].ItemNumber = 248937;
                anItem[12].ItemName = "Striped Cotton Shirt      ";
                anItem[12].UnitPrice = 65.55M;
    
                anItem[13] = new ItemManager.StoreItem();
                anItem[13].ItemNumber = 276057;
                anItem[13].ItemName = "Two-Toned Ribbed Crewneck ";
                anItem[13].UnitPrice = 9.75M;
    
                anItem[14] = new ItemManager.StoreItem();
                anItem[14].ItemNumber = 267945;
                anItem[14].ItemName = "Chestnut Italian Shoes    ";
                anItem[14].UnitPrice = 165.75M;
    
                anItem[15] = new ItemManager.StoreItem();
                anItem[15].ItemNumber = 409579;
                anItem[15].ItemName = "Collar and Placket Jacket ";
                anItem[15].UnitPrice = 265.15M;
    
                anItem[16] = new ItemManager.StoreItem();
                anItem[16].ItemNumber = 467583;
                anItem[16].ItemName = "Country Coat Rugged Wear  ";
                anItem[16].UnitPrice = 35.55M;
    
                anItem[17] = new ItemManager.StoreItem();
                anItem[17].ItemNumber = 448937;
                anItem[17].ItemName = "Carpenter Jeans           ";
                anItem[17].UnitPrice = 24.95M;
    
                anItem[18] = new ItemManager.StoreItem();
                anItem[18].ItemNumber = 476057;
                anItem[18].ItemName = "Dbl-Cushion Tennis Shoes  ";
                anItem[18].UnitPrice = 48.75M;
    
                anItem[19] = new ItemManager.StoreItem();
                anItem[19].ItemNumber = 467945;
                anItem[19].ItemName = "Stitched Center-Bar Belt  ";
                anItem[19].UnitPrice = 32.50M;
    
                // Order Processing
                // Request an item number from the user
                try
                {
                    Console.Write("Enter Item Number: ");
                    ItemID = long.Parse(Console.ReadLine());
                }
                catch (FormatException)
                {
    Console.WriteLine("Invalid Number - The program will terminate\n");
                }
    
                // Scan the list
                for (int i = 0; i < 20; i++)
                {
                    // Find out if the number typed exists in the list
                    if (ItemID == anItem[i].ItemNumber)
                    {
                // If the number matches one of the numbers in the list
                        // Create a StoreItem value from it
                        Description = anItem[i].ItemName;
                        Price = anItem[i].UnitPrice;
    
                        // Identify the category of the item
                        if (ItemID >= 900000)
                            Category = "Women";
                        else if (ItemID >= 700000)
                            Category = "Girls";
                        else if (ItemID >= 400000)
                            Category = "Boys";
                        else
                            Category = "Men";
                    }
                }
    
                // Display the receipt
                Console.WriteLine("Receipt");
                Console.WriteLine("Item Number: {0}", ItemID);
    Console.WriteLine("Description: {0} - {1}", Category, Description);
                Console.WriteLine("Unit Price:  {0:C}\n", Price);
                return 0;
            }
        }
    }
  5. Exécutez l'application et l'examiner. Voici un exemple :
     
    Enter Item Number: 987598
    Receipt
    Item Number: 987598
    Description: Women - Chiffon Blouse
    Unit Price:  $265.00
    
    Press any key to continue . . .
  6. Fermez la fenêtre DOS

Une classe rangée passée comme argument

Comme un type primitif, une classe peut être passée à une méthode comme argument. Tout est principalement fait de la même façon sauf que, puisque l'argument est une rangée, chaque membre de la rangée est une variable de son propre chef, avec une valeur pour chaque variable membre de la classe. Basé sur ceci, en traitant l'argument, vous pouvez accéder à chacun de ses membres en utilisant individuellement son index.

Étude pratiqueÉtude pratique : Dépassement d'une classe comme argument

  1. Pour passer une rangée d'une classe à une méthode comme argument, changez le fichier comme suit:
     
    using System;
    using ItemManager;
    
    namespace DepartmentStore6
    {
        class Program
        {
            static int Main(string[] args)
            {   
    	    StoreItem[] SaleItem = new StoreItem[20];
    
    	    CreateInventory(SaleItem);
    
    	    int Choice = 1;
    
    	    Console.WriteLine("Welcome to Emilie Department Store");
    	    // Present a short menu to the user
    	    do
    	    {
    		// Let the user specify the action to take
    		try 
    		{
    			Console.WriteLine("What action do you want to take?");
    		Console.WriteLine("1 - I want to see the store inventory");
    		Console.WriteLine("2 - I want to process a customer order");
    			Console.Write("Your Choice? ");
    			Choice = int.Parse(Console.ReadLine());
    		}
    		catch(FormatException)
    		{
    Console.WriteLine("Invalid choice - The character you typed is excluded!");
    		}
    					
    		if( Choice != 1 && Choice != 2 )
    		Console.WriteLine("Invalid Number - Please Try Again!\n");
    		} while( Choice != 1 && Choice != 2 );
    
    		// Take action based on the user's choice
    		if( Choice == 1 )
    			ShowInventory(SaleItem);
    		else
    			ProcessOrder(SaleItem);
    
                return 0;
    	}
    
    	// This method is used to process an order
    	// It fills a StoreItem array argument passed to it
    	static void ProcessOrder(StoreItem[] Order)
    	{
    	    string  Category = "Category";
    	    long    ItemID = 0;
    	    string  Description = "Unknown";
    	    decimal Price = 0.00M;
    
    	    // Order Processing
     	    // Request an item number from the user
    	    try 
    	    {
    		Console.Write("Enter Item Number: ");
    		ItemID = long.Parse(Console.ReadLine());
    	    }
    	    catch(FormatException)
    	    {
    	Console.WriteLine("Invalid Number - The program will terminate\n");
    	    }
    
    	    // Scan the list
    	    for(int i = 0; i < 20; i++)
    	    {
    		// Find out if the number typed exists in the list
    		if( ItemID == Order[i].ItemNumber )
    		{
    		    // If the number matches one of the itemsin the list
    		    // get the characteristics of that item
    		    Description = Order[i].ItemName;
    		    Price = Order[i].UnitPrice;
                        
    		    // Identify the category of the item
    		    if( ItemID >= 900000 )
    			Category = "Women";
    		    else if( ItemID >= 700000 )
    			Category = "Girls";
    		    else if( ItemID >= 400000 )
    			Category = "Boys";
    		    else
    			Category = "Men";
    		}
    	    }
    
                Console.WriteLine("\n=========================================");
    	    Console.WriteLine("Receipt");
                Console.WriteLine("-----------------------------------------");
    	    Console.WriteLine("Item Number: {0}", ItemID);
    	    Console.WriteLine("Description: {0} - {1}", 
    				Category, Description);
                Console.WriteLine("Unit Price:  {0:C}", Price);
                Console.WriteLine("=========================================\n");
    
    	    Console.WriteLine();
    	}
    		
    	// This method can be called to display the current 
    	// inventory of the store
    	static void ShowInventory(StoreItem[] Items)
    	{
    	    // Display the inventory
    	    string  Category = "Category";
    	    Console.WriteLine("Store Inventory");
    	    Console.WriteLine("=======+==========+===============" +
    			      "============+=========");
    	    Console.WriteLine("Item # | Category | Description" +
    			      "               | Price");
    	    for(int i = 0; i < 20; i++)
    	    {
    		if( Items[i].ItemNumber >= 900000 )
    			Category = " Women";
    		else if( Items[i].ItemNumber >= 700000 )
    			Category = " Girls";
    		else if( Items[i].ItemNumber >= 400000 )
    			Category = " Boys ";
    		else
    			Category = " Men  ";
                    
    		Console.WriteLine("-------+----------+------------" +
    				  "---------------+---------");
    		Console.WriteLine("{0} | {1}   | {2}| {3}",
    		Items[i].ItemNumber, Category,
    		Items[i].ItemName, Items[i].UnitPrice);
    	    }
    
    	    Console.WriteLine("=======+==========+===============" +
    			      "============+=========\n");
    	}
    
    	// This method creates an inventory of the items available in the store
    	// It receives an empty list as a StoreItem array 
    	// but fills it with the necessary item
    	static void CreateInventory(StoreItem[] anItem)
    	{
    	    // Create the list of sales items
    	    anItem[0] = new StoreItem();
    	    anItem[0].ItemNumber = 947783;
    	    anItem[0].ItemName   = "Double-faced wool coat    ";
    	    anItem[0].UnitPrice  = 275.25M;
    				
    	    anItem[1] = new StoreItem();
    		anItem[1].ItemNumber = 934687;
    		anItem[1].ItemName   = "Floral Silk Tank Blouse   ";
    		anItem[1].UnitPrice  = 180.00M;
    				
    		anItem[2] = new StoreItem();
    		anItem[2].ItemNumber = 973947;
    		anItem[2].ItemName   = "Push Up Bra               ";
    		anItem[2].UnitPrice  = 50.00M;
    				
    		anItem[3] = new StoreItem();
    		anItem[3].ItemNumber = 987598;
    		anItem[3].ItemName   = "Chiffon Blouse            ";
    		anItem[3].UnitPrice  = 265.00M;
    				
    		anItem[4] = new StoreItem();
    		anItem[4].ItemNumber = 974937;
    		anItem[4].ItemName   = "Bow Belt Skirtsuit        ";
    		anItem[4].UnitPrice  = 245.55M;
    
    		anItem[5] = new StoreItem();
    		anItem[5].ItemNumber = 743765;
    		anItem[5].ItemName   = "Cable-knit Sweater        ";
    		anItem[5].UnitPrice  = 45.55M;
    
    		anItem[6] = new StoreItem();
    		anItem[6].ItemNumber = 747635;
    		anItem[6].ItemName   = "Jeans with Heart Belt     ";
    		anItem[6].UnitPrice  = 25.65M;
    			
    		anItem[7] = new StoreItem();
    		anItem[7].ItemNumber = 765473;
    		anItem[7].ItemName   = "Fashionable mini skirt    ";
    		anItem[7].UnitPrice  = 34.55M;
    			
    		anItem[8] = new StoreItem();
    		anItem[8].ItemNumber = 754026;
    		anItem[8].ItemName   = "Double Dry Pants          ";
    		anItem[8].UnitPrice  = 28.55M;
    			
    		anItem[9] = new StoreItem();
    		anItem[9].ItemNumber = 730302;
    		anItem[9].ItemName   = "Romantic Flower Dress     ";
    		anItem[9].UnitPrice  = 24.95M;
    			
    		anItem[10] = new StoreItem();
    		anItem[10].ItemNumber = 209579;
    		anItem[10].ItemName   = "Cotton Polo Shirt         ";
    		anItem[10].UnitPrice  = 45.75M;
    			
    		anItem[11] = new StoreItem();
    		anItem[11].ItemNumber = 267583;
    		anItem[11].ItemName   = "Pure Wool Cap             ";
    		anItem[11].UnitPrice  = 25.00M;
    			
    		anItem[12] = new StoreItem();
    		anItem[12].ItemNumber = 248937;
    		anItem[12].ItemName   = "Striped Cotton Shirt      ";
    		anItem[12].UnitPrice  = 65.55M;
    			
    		anItem[13] = new StoreItem();
    		anItem[13].ItemNumber = 276057;
    		anItem[13].ItemName   = "Two-Toned Ribbed Crewneck ";
    		anItem[13].UnitPrice  = 9.75M;
    			
    		anItem[14] = new StoreItem();
    		anItem[14].ItemNumber = 267945;
    		anItem[14].ItemName   = "Chestnut Italian Shoes    ";
    		anItem[14].UnitPrice  = 165.75M;
    			
    		anItem[15] = new StoreItem();
    		anItem[15].ItemNumber = 409579;
    		anItem[15].ItemName   = "Collar and Placket Jacket ";
    		anItem[15].UnitPrice  = 265.15M;
    			
    		anItem[16] = new StoreItem();
    		anItem[16].ItemNumber = 467583;
    		anItem[16].ItemName   = "Country Coat Rugged Wear  ";
    		anItem[16].UnitPrice  = 35.55M;
    			
    		anItem[17] = new StoreItem();
    		anItem[17].ItemNumber = 448937;
    		anItem[17].ItemName   = "Carpenter Jeans           ";
    		anItem[17].UnitPrice  = 24.95M;
    			
    		anItem[18] = new StoreItem();
    		anItem[18].ItemNumber = 476057;
    		anItem[18].ItemName   = "Dbl-Cushion Tennis Shoes  ";
    		anItem[18].UnitPrice  = 48.75M;
    			
    		anItem[19] = new StoreItem();
    		anItem[19].ItemNumber = 467945;
    		anItem[19].ItemName   = "Stitched Center-Bar Belt  ";
    		anItem[19].UnitPrice  = 32.50M;
            }
        }
    }
  2. Exécutez l'application. Voici un exemple :
     
    Welcome to Emilie Department Store
    What action do you want to take?
    1 - I want to see the store inventory
    2 - I want to process a customer order
    Your Choice? 2
    Enter Item Number: 743765
    
    =========================================
    Receipt
    -----------------------------------------
    Item Number: 743765
    Description: Girls - Cable-knit Sweater
    Unit Price:  $45.55
    =========================================
    
    Press any key to continue . . .
  3. Fermez la fenêtre DOS

Renvoi d'une classe rangée d'une méthode

De nouveau, comme une variable régulière, une rangée peut être retournée d'une fonction. La syntaxe suit également celle d'un type primitif. Quand la fonction finit, vous devez vous assurer qu'elle renvoie une rangée et pas une variable régulière.

Étude pratiqueÉtude pratique : Renvoyer une rangée de classe d'une fonction

  1. Pour renvoyer une rangée d'un type de classe d'une méthode, changez le fichier comme suit :
     
    using System;
    using ItemManager;
    
    namespace DepartmentStore6
    {
        class Program
        {
            static int Main(string[] args)
            {   
    	    StoreItem[] SaleItem = CreateInventory();
    
    	    int Choice = 1;
    
    	    . . . No Change
    
                return 0;
    	}
    
    	. . . No Change
    		
    // This method creates an inventory of the items available in the store
    	// It receives an empty list as a StoreItem array
    	// but fills it with the necessary item
    	static StoreItem[] CreateInventory()
    	{
                StoreItem[] anItem = new StoreItem[20];
    
    	    // Create the list of sales items
    	    anItem[0] = new StoreItem();
    	    anItem[0].ItemNumber = 947783;
    	    anItem[0].ItemName   = "Double-faced wool coat    ";
    	    anItem[0].UnitPrice  = 275.25M;
    				
    	    . . . No Change
    			
    	    anItem[19] = new StoreItem();
    	    anItem[19].ItemNumber = 467945;
    	    anItem[19].ItemName   = "Stitched Center-Bar Belt  ";
    	    anItem[19].UnitPrice  = 32.50M;
    
                return anItem;
            }
        }
    }
  2. Exécutez l'application et l'examiner
  3. Fermez la fenêtre DOS
  

Précédent Copyright © 2007, Yevol