在此代码中,打印机函数获取的对象是客户端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();
}
}
}
对象类型没有Print方法...因此出错。
您需要写:
((Client)a).Print();
或
(a as Client)?.Print();