如何对对象使用类方法? c#

问题描述 投票:-4回答:1

在此代码中,打印机函数获取的对象是客户端C或帐户A,它必须弄清楚它是哪个类,并使用函数Print打印其变量/成员。

namespace Console.App._12
{
    class Program
    {
        class Client
        {
        public string PersonallID;
        public string FirstName;
        public string LastName;
        public string BirthDate;
        public string Gender;
        public string Mobile;

        public Client(string personallID , string firstname, string lastname, string birthdate, string gender, string mobile)
        {
            PersonallID = personallID;
            FirstName = firstname;
            LastName = lastname;
            BirthDate = birthdate;
            Gender = gender;
            Mobile = mobile;


        }

        public Client() { }

        public void Print()
        {
            System.Console.WriteLine("PersonalID: " + PersonallID);
            System.Console.WriteLine("FirstName: " + FirstName);
            System.Console.WriteLine("last name: " + LastName);
            System.Console.WriteLine("birthdate: " + BirthDate);
            System.Console.WriteLine("Gender: " + Gender);
            System.Console.WriteLine("Mobile: " + Mobile);
        }
    }

    class Account
    {
        public string PersonallID;
        public string CreateDate;
        public string Curency;
        public string Acc; 
        public string State;

        public Account (string personallID, string createdate, string curency, string acc, string state)
        {
            PersonallID = personallID;
            CreateDate = createdate;
            Curency = curency;
            Acc = acc;
            State = state;
        }

        public void Print ()
        {
            System.Console.WriteLine("PersonallID: " + PersonallID);
            System.Console.WriteLine("CreateDate: " + CreateDate);
            System.Console.WriteLine("Curency: " + Curency);
            System.Console.WriteLine("Account Number: " + Acc);
            System.Console.WriteLine("Account state: " + State);
        }
    }



    static class Helper
    {
        public static void Printer(Object a)
        {
            if (a.GetType() == typeof(Client))
            {
                System.Console.WriteLine("Class = Client");
                a.Print(); // Here is the error : object does not contain defenition for 'Print'
            }
            else
            {
                System.Console.WriteLine("Class = Account");
                a.Print(); // Same error here
            }
        }
    }


    static void Main(string[] args)
    {
        Random Rnd = new Random();

        string personallID = "2000234002";
        string firstname = " Nika";
        string lastname = "davitaia";
        string birthdate = "20/11/2003";
        string gender = "Male";
        string mobile = "12345578";

        string createdate = "15/3/2010";
        string curency = "GEL";
        string acc = "GE234TBC532452";
        string state = "OPEN";


        Client C = new Client(personallID, firstname, lastname, birthdate, gender, mobile);
        Account A = new Account(personallID, createdate, curency, acc, state);

        Helper.Printer(A);
        Helper.Printer(C);


        System.Console.ReadKey();
    }
}

}


c# class object
1个回答
0
投票

对象类型没有Print方法...因此出错。

您需要写:

((Client)a).Print(); 

(a as Client)?.Print(); 
© www.soinside.com 2019 - 2024. All rights reserved.