Описать класс Пылесос с атрибутами Марка, Потребляемая мощность, Мощность всасывания - C#
Формулировка задачи:
Здравствуйте уважаемые любители и ценители языка С#! У меня к вам огромная просьба. На днях нужно сдать контрольную работу по предмету Конструирование программ и языки программирования.
Если вам не сложно мне помочь в этом, и у вас будет желание, я вас отблагодарю сильно, сильно.
Определите класс, который должен содержать атрибуты и функции (минимум три), позволяющие прозводить обработку указанных атрибутов.
Напишите программу, которая создает несколько объектов класса и печатает их на экране.
Вариант 9
Класс Пылесос с атрибутами Марка, Потребляемая мощность, Мощность всасывания.
Заранее спасибо, моя пневмония все мне испортила... Спасибо всем, кто откликнется..
Решение задачи: «Описать класс Пылесос с атрибутами Марка, Потребляемая мощность, Мощность всасывания»
textual
Листинг программы
class Program
{
public static void Main(string[] args)
{
var vc = new VacuumCleaner();
Console.WriteLine(vc);
}
}
class ModelAttribute : Attribute
{
public ModelAttribute(string model)
{
Model = model;
}
public string Model { get; set; }
}
class ElectricityUsageAttribute : Attribute
{
public ElectricityUsageAttribute(float power)
{
Power = power;
}
public float Power { get; set; }
}
class SuctionAttribute : Attribute
{
public SuctionAttribute(int suctionPower)
{
SuctionPower = suctionPower;
}
public int SuctionPower { get; set; }
}
[Model("Philips")]
[Suction(10)]
[ElectricityUsage(10.25f)]
class VacuumCleaner
{
public string GetModel()
{
var type = GetType();
if (!Attribute.IsDefined(type, typeof(ModelAttribute)))
throw new CustomAttributeFormatException();
var attr = Attribute.GetCustomAttribute(type, typeof(ModelAttribute)) as ModelAttribute;
return attr.Model;
}
public int GetSuctionPower()
{
var type = GetType();
if (!Attribute.IsDefined(type, typeof(SuctionAttribute)))
throw new CustomAttributeFormatException();
var attr = Attribute.GetCustomAttribute(type, typeof(SuctionAttribute)) as SuctionAttribute;
return attr.SuctionPower;
}
public float GetElectricityUsage()
{
var type = GetType();
if (!Attribute.IsDefined(type, typeof(ElectricityUsageAttribute)))
throw new CustomAttributeFormatException();
var attr = Attribute.GetCustomAttribute(type, typeof(ElectricityUsageAttribute)) as ElectricityUsageAttribute;
return attr.Power;
}
public override string ToString()
{
var type = GetType();
if (!Attribute.IsDefined(type, typeof (ModelAttribute)))
return string.Format("Model: {0} SuctionPower: {1} ElectricityUsage: {2}", "null", "null", "null");
if (!Attribute.IsDefined(type, typeof (SuctionAttribute)))
return string.Format("Model: {0} SuctionPower: {1} ElectricityUsage: {2}", "null", "null", "null");
if (!Attribute.IsDefined(type, typeof (ElectricityUsageAttribute)))
return string.Format("Model: {0} SuctionPower: {1} ElectricityUsage: {2}", "null", "null", "null");
var modelAttr = Attribute.GetCustomAttribute(type, typeof (ModelAttribute)) as ModelAttribute;
var sucAttr = Attribute.GetCustomAttribute(type, typeof (SuctionAttribute)) as SuctionAttribute;
var elecAttr = Attribute.GetCustomAttribute(type, typeof (ElectricityUsageAttribute)) as ElectricityUsageAttribute;
return string.Format("Model: {0} SuctionPower: {1} ElectricityUsage: {2}", modelAttr.Model, sucAttr.SuctionPower, elecAttr.Power);
}
}