【发布时间】:2020-11-22 12:03:43
【问题描述】:
class GSM
{
private string name;
private string manufacturer;
private string owner;
private double price;
public string Name
{
get { return this.name; }
}
public string Manufacturer
{
get { return this.manufacturer; }
}
public string Owner
{
get { return this.owner; }
set { this.owner = value; }
}
public double Price
{
get { return price; }
set { price = value; }
}
public GSM(string name, string manu)
{
this.name = name;
this.manufacturer = manu;
}
public GSM(string name, string manu, string owner, double price, Battery battery, Display display)
{
this.name = name;
this.manufacturer = manu;
this.owner = owner;
this.price = price;
}
public override string ToString()
{
return "Owner: " + Owner + "\nModel: " + Name + "\nManufacturer: " + Manufacturer + "\nPrice: " + Price + "\n";
}
}
两种类
class Battery
{
private ushort hoursIdle;
private ushort hoursTalk;
private _BatteryType batteryType;
public _BatteryType BatteryType
{
get { return this.batteryType; }
}
public enum _BatteryType { LiLon, NiMH, NiCd }
public ushort HoursIdle
{
get { return hoursIdle; }
}
public ushort HoursTalk
{
get { return hoursTalk; }
}
public Battery(ushort hoursIdle, ushort hoursTalk, _BatteryType batteryType)
{
this.hoursIdle = hoursIdle;
this.hoursTalk = hoursTalk;
this.batteryType = batteryType;
}
}
我的主要
static void TestDataArray()
{
GSM test = new GSM("IPhone", "Apple");
GSM test2 = new GSM("IPhone XI", "Apple", "x", 13000,new Battery(10,5,Battery._BatteryType.LiLon),new Display(20,1000,Display._Display.LCD));
GSM test3 = new GSM("Samsung Galaxy S20", "Samsung", "y", 11000, new Battery(10, 5, Battery._BatteryType.LiLon), new Display(20, 2000,Display._Display.AMOLED));
GSM[] MobileArray = new GSM[3] { test,test2,test3 };
foreach (object o in MobileArray)
{
Console.WriteLine(o);
}
}
问题:我想在 iphone 中获取枚举数据“LCD”,在三星中获取“AMOLED”,无法将其覆盖为字符串方法。试图在 GSM 类中创建一个新实例,但获得了默认值。尝试调用 Battery 类,然后调用枚举列表,但强制我选择一个值。
【问题讨论】:
-
您将 Battery 和 Display 对象传递给 GMS 构造函数,但不要将其存储在字段中。这是你的问题吗?
-
干杯! :) 非常感谢队友