Welcome guest. Before posting on our computer help forum, you must register. Click here it's easy and free.

Author Topic: help me..why my program get"expected class delegate enum interface or struct"??  (Read 5488 times)

0 Members and 1 Guest are viewing this topic.

ariezulhairi

    Topic Starter


    Newbie

    • Experience: Beginner
    • OS: Windows 7
    using System;
    using System.Collections.Generic;

    using System.Runtime.Serialization.Formatters .Binary; //namespace to use Serialization
     
    class Record
    {     
        private string name;

        public string Name
        {
            get { return name; }
            set { name = value; }
        }
           
        private double homeNumber;

        public double HomeNumber
        {
            get { return homeNumber; }
            set { homeNumber = value; }
        }

        private double mobNumber;

        public double MobNumber
        {
            get { return mobNumber; }
            set { mobNumber = value; }
        }

        private string address;

        public string Address
        {
           get { return address; }
           set { address = value; }
        }

        // Default Constructor
        public Record()
        {
           this.name = string.Empty;
           this.homeNumber =  0000;
           this.MobNumber = 0000;
           this.address = "Fake";
        }

        // Parameterized Constructor
        public Record(string n, double hNum, double mobNum, string add)
        {
           this.name = n;
           this.homeNumber = hNum;
           this.mobNumber = mobNum;
           this.address = add;
        }

        public void print()
        {
          System.Console.WriteLine("The Name Is : " + this.name);
          System.Console.WriteLine(" Home Phone No. Is : " + this.homeNumber);
          System.Console.WriteLine(" Mobile Phone No. Is : " + this.mobNumber);
          System.Console.WriteLine(" Address Is : " + this.address);
        }
    }

    // Add a new Record first to ArrayList(recordList) and then in file
    public void addNewRecord()
    {
       
       recordList = new ArrayList();
       records = new Record();

       // Here Adding Record to ArrayList         
       recordList.Add(new Record("osama", 36887676, 3333003212,"Lahore"));
       recordList.Add(new Record("saad", 4234234, 33330065656, "Ali Park"));
       recordList.Add(new Record("bilal", 2123456, 0456123232, "Multan"));
       recordList.Add(new Record("maryam", 1312312, 33330032121,"Karachi"));
                 
       FileStream fs = new FileStream("data.txt", FileMode.Create, FileAccess.Write);
       BinaryFormatter bf = new BinaryFormatter();

    }

    // Loads the all reocrds from file and add to ArrayList(recordList)
    public void loadRecord()
    {           
       
    recordList = new ArrayList();
    FileStream fs = new FileStream("data.txt", FileMode.Open, FileAccess.Read);
    BinaryFormatter bf = new BinaryFormatter();
        try
          {
            while (fs.CanRead)//Reading the FileStream
            {
               Record r = (Record)bf.Deserialize(fs);//De-Serialize the each object
               recordList.Add(r); //And Add to ArrayList
               r.print(); //Printing the each record from the file to console
            }
          }
           catch (Exception e) {}             
       fs.Close();
    }

    // Saving the record to file.
    public void saveRecord()
    {
         
       FileStream fs = new FileStream("data.txt", FileMode.Create, FileAccess.Write);
       BinaryFormatter bf = new BinaryFormatter();

       for (int i = 0; i < recordList.Count; i++)
       {
           record = (Record)recordList;
           bf.Serialize(fs, record);
           fs.Flush();
       }
               
     fs.Close();   

         
    }

    public void enterInPhoneDirectory()
    {
       
       record = new Record();
       loadRecord();

       Console.WriteLine("Enter Your Home Number/ Mobile Number : ");
       double number = double.Parse(Console.ReadLine()); // User to enter his/her Home/mobile no.

       for (int j = 0; j < recordList.Count; j++)
       {
           record = (Record)recordList[j];
       
            if (record.HomeNumber == number || record.MobNumber == number)
             {
                Console.WriteLine("Welcome , " + record.Name.ToUpper());
                record.print();
           
                Console.WriteLine("Press 1 to Change Home Number");
                Console.WriteLine("Press 2 to Change Mobile Number");
                Console.WriteLine("Press 3 to Change Address");
                Console.WriteLine("Press 4 to exit this menu");
                int option = int.Parse(Console.ReadLine());
                     
                  switch (option)
                   {
                         case 1:
                           Console.WriteLine("Enter Your New Home Number");
                           double hNum = double.Parse(Console.ReadLine());
                           record.HomeNumber = hNum;
                         break;

                         case 2:
                           Console.WriteLine("Enter Your New Mobile Number");
                           double mNum = double.Parse(Console.ReadLine());
                           record.MobNumber = mNum;
                         break;
                               
                         case 3:
                           Console.WriteLine("Enter Your New Address");
                           string add = Console.ReadLine();
                           record.Address = add;
                         break;
                               
                         case 4:
                           Console.Clear();
                           Main(new string[]{"s"});
                         break;
                  }
                                       
              saveRecord();
            }             
        }
     }

    public static void Main(string[] args)
    {


        // Front end menu
        Console.WriteLine("----------Menu----------");
        Console.WriteLine("Press 1 to enter number (home / mobile)");
        Console.WriteLine("Press 2 to exit");

        int input = int.Parse(Console.ReadLine());

        switch (input)
        {
             case 1:
                enterInPhoneDirectory();
             break;

             case 2:
                Environment.Exit(0);
             break;
        }
     }

    BC_Programmer


      Mastermind
    • Typing is no substitute for thinking.
    • Thanked: 1140
      • Yes
      • Yes
      • BC-Programming.com
    • Certifications: List
    • Computer: Specs
    • Experience: Beginner
    • OS: Windows 11
    Move of the methods are instance methods that aren't declared inside a class definition (and are thus invalid). Several variables aren't declared anywhere, and the aforementioned methods are instance methods rather than static methods.

    Fixed version:
    Code: [Select]
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.IO;
    using System.Runtime.Serialization.Formatters.Binary;

    namespace testapp
    {
        using System.Runtime.Serialization.Formatters.Binary; //namespace to use Serialization
        public static class Program
        {
            static ArrayList recordList;
            static Record records;
            class Record
            {
                private string name;

                public string Name
                {
                    get { return name; }
                    set { name = value; }
                }

                private double homeNumber;

                public double HomeNumber
                {
                    get { return homeNumber; }
                    set { homeNumber = value; }
                }

                private double mobNumber;

                public double MobNumber
                {
                    get { return mobNumber; }
                    set { mobNumber = value; }
                }

                private string address;

                public string Address
                {
                    get { return address; }
                    set { address = value; }
                }

                // Default Constructor
                public Record()
                {
                    this.name = string.Empty;
                    this.homeNumber = 0000;
                    this.MobNumber = 0000;
                    this.address = "Fake";
                }

                // Parameterized Constructor
                public Record(string n, double hNum, double mobNum, string add)
                {
                    this.name = n;
                    this.homeNumber = hNum;
                    this.mobNumber = mobNum;
                    this.address = add;
                }

                public void print()
                {
                    System.Console.WriteLine("The Name Is : " + this.name);
                    System.Console.WriteLine(" Home Phone No. Is : " + this.homeNumber);
                    System.Console.WriteLine(" Mobile Phone No. Is : " + this.mobNumber);
                    System.Console.WriteLine(" Address Is : " + this.address);
                }
            }
           
            // Add a new Record first to ArrayList(recordList) and then in file
            public static void addNewRecord()
            {

                recordList = new ArrayList();
                records = new Record();

                // Here Adding Record to ArrayList         
                recordList.Add(new Record("osama", 36887676, 3333003212, "Lahore"));
                recordList.Add(new Record("saad", 4234234, 33330065656, "Ali Park"));
                recordList.Add(new Record("bilal", 2123456, 0456123232, "Multan"));
                recordList.Add(new Record("maryam", 1312312, 33330032121, "Karachi"));

                FileStream fs = new FileStream("data.txt", FileMode.Create, FileAccess.Write);
                BinaryFormatter bf = new BinaryFormatter();

            }

            // Loads the all reocrds from file and add to ArrayList(recordList)
            public static void loadRecord()
            {

                recordList = new ArrayList();
                FileStream fs = new FileStream("data.txt", FileMode.Open, FileAccess.Read);
                BinaryFormatter bf = new BinaryFormatter();
                try
                {
                    while (fs.CanRead)//Reading the FileStream
                    {
                        Record r = (Record)bf.Deserialize(fs);//De-Serialize the each object
                        recordList.Add(r); //And Add to ArrayList
                        r.print(); //Printing the each record from the file to console
                    }
                }
                catch (Exception e) { }
                fs.Close();
            }

            // Saving the record to file.
            public static void saveRecord()
            {

                FileStream fs = new FileStream("data.txt", FileMode.Create, FileAccess.Write);
                BinaryFormatter bf = new BinaryFormatter();

                for (int i = 0; i < recordList.Count; i++)
                {
                    var record = (Record)recordList[i];
                    bf.Serialize(fs, record);
                    fs.Flush();
                }

                fs.Close();


            }

            public static void enterInPhoneDirectory()
            {

               var record = new Record();
                loadRecord();

                Console.WriteLine("Enter Your Home Number/ Mobile Number : ");
                double number = double.Parse(Console.ReadLine()); // User to enter his/her Home/mobile no.

                for (int j = 0; j < recordList.Count; j++)
                {
                    record = (Record)recordList[j];

                    if (record.HomeNumber == number || record.MobNumber == number)
                    {
                        Console.WriteLine("Welcome , " + record.Name.ToUpper());
                        record.print();

                        Console.WriteLine("Press 1 to Change Home Number");
                        Console.WriteLine("Press 2 to Change Mobile Number");
                        Console.WriteLine("Press 3 to Change Address");
                        Console.WriteLine("Press 4 to exit this menu");
                        int option = int.Parse(Console.ReadLine());

                        switch (option)
                        {
                            case 1:
                                Console.WriteLine("Enter Your New Home Number");
                                double hNum = double.Parse(Console.ReadLine());
                                record.HomeNumber = hNum;
                                break;

                            case 2:
                                Console.WriteLine("Enter Your New Mobile Number");
                                double mNum = double.Parse(Console.ReadLine());
                                record.MobNumber = mNum;
                                break;

                            case 3:
                                Console.WriteLine("Enter Your New Address");
                                string add = Console.ReadLine();
                                record.Address = add;
                                break;

                            case 4:
                                Console.Clear();
                                Main(new string[] { "s" });
                                break;
                        }

                        saveRecord();
                    }
                }
            }

            public static void Main(string[] args)
            {


                // Front end menu
                Console.WriteLine("----------Menu----------");
                Console.WriteLine("Press 1 to enter number (home / mobile)");
                Console.WriteLine("Press 2 to exit");

                int input = int.Parse(Console.ReadLine());

                switch (input)
                {
                    case 1:
                        enterInPhoneDirectory();
                        break;

                    case 2:
                        Environment.Exit(0);
                        break;
                }
            }
        }
    }
    I was trying to dereference Null Pointers before it was cool.