为了提高代码的可重用性我们这样定义一个IPhone phone = null明显的提高了程序的可重用性。而在我自己做的时候没有定义IPhone phone= null;这个字段。直接用IPhone mobile = new Mobile();和
{
iphone.Add(phone);
}
使得只要是属于IPhone这个接口的属性都可以添加到iphone的集合中。所以我们以后写代码时要尽量写
另外我们可以用while (Console.ReadKey(true).Key.ToString().ToUpper()!="E") ;代替while
using System.Text;
using System.Collections;
using System.Threading;
namespace _7_27lianxi
{
class Program
{
static void Main(string[] args)
{
List<IPhone> iphone = new List<IPhone>();
IPhone phone = null;
do
{
Console.WriteLine("1、手机录入 2、坐机录入 3 小灵通");
switch (Console.ReadLine())
{
case "1":
phone = new Mobile();
WritePhone(phone);
//IPhone mobile = new Mobile();
//Console.WriteLine("请输入{0}号码:",mobile.Name);
//mobile.Number = Console.ReadLine();
//iphone.Add(mobile);
break;
case "2":
phone = new Tel();
WritePhone(phone);
// Console.WriteLine("请输入{0}号码:", tel.Name);
//tel.Number = Console.ReadLine();
//iphone.Add(tel);
break;
case "3":
phone = new LittleSmart();
WritePhone(phone);
// Console.WriteLine("请输入{0}号码:", tel.Name);
//tel.Number = Console.ReadLine();
//iphone.Add(tel);
break;
default:
break;
}
if (phone != null)
{
iphone.Add(phone);
}
Console.WriteLine("退出请按E,继续请按任意键!");
}
// while (Console.ReadLine().ToUpper()!="E");
while (Console.ReadKey(true).Key.ToString().ToUpper()!="E") ;
foreach (var s in iphone)
{
Console.WriteLine("名称{0},号码{1}",s.Name,s.Number);
}
}
static void WritePhone(IPhone phone1)
{
Console.WriteLine("请输入{0}号码:",phone1.Name);
phone1.Number = Console.ReadLine();
}
interface IPhone
{
string Name
{
get;
}
string Number
{
get;
set;
}
class Mobile:IPhone
{
string name = "手机";
public string Name
{
get
{
return name;
}
}
string number = "";
public string Number
{
get
{
}
set
{
number = value;
}
}
}
class Tel:IPhone
{
string number = "";
string name = "座机";
public string Name
{
get
{
return name;
}
public string Number
{
get
{
}
set
{
number = value;
}
}
class LittleSmart : IPhone
{
string number = "";
string name = "小灵通";
public string Name
{
get
{
return name;
}
public string Number
{
get
{
}
set
{
number = value;
}
}