C#   Уроки программирования с нуля. Си-шарп для чайников   C#

Здравствуйте, гость!
Вход
Регистрация


Перечисления (enum) в Си-шарп
Перечисление (Enumeration) – это определяемый пользователем целочисленный тип, который позволяет специфицировать набор допустимых значений, и назначить каждому понятное имя.

Для объявления перечисления используется ключевое слово enum. Общая структура объявления перечисления выглядит так:

enum [имя_перечисления] { [имя1], [имя2], … };


Например, создадим перечисление Directions, которое будет соответствовать направлениям движения:

enum Directions { Left, Right, Forward, Back };


Объявив таким образом перечисление, каждой символически обозначаемой константе присваивается целочисленное значение, начиная с 0 (Left = 0, Right = 1 …). Это целочисленное значение можно задавать и самому:

enum Directions { Left, Right = 5, Forward = 10, Back };


Back в этом примере будет иметь значение 11.

Пример программы с использованием перечисления:

enum Directions { Left, Right, Forward, Back }; // объявление перечисления

class Program
{
   public static void GoTo(Directions direction)
   {
     switch (direction)
     {
       case Directions.Back:
         Console.WriteLine("Go back");
         break;
       case Directions.Forward:
         Console.WriteLine("Go forward");
         break;
       case Directions.Left:
         Console.WriteLine("Turn left");
         break;
       case Directions.Right:
         Console.WriteLine("Turn right ");
         break;
     }
   }

   static void Main(string[] args)
   {
     Directions direction = Directions.Forward;
     GoTo(direction); // "Go forward"
     Console.ReadKey();
   }
}


Чтобы получить целое значение определенного элемента перечисления, достаточно этот элемент явно привести к целому типу:

enum Directions : byte { Left, Right, Forward, Back };

class Program
{
   static void Main(string[] args)
   {
     Console.WriteLine((int)Directions.Forward); // 2
     Console.ReadKey();
   }
}


По умолчанию в качестве целого типа для enum используется int. Этот тип можно изменить на любой другой целый тип (кроме char), указав после имени перечисления необходимый тип и разделив двоеточием:

enum Directions : byte { Left, Right, Forward, Back };


Зачем нужны перечисления и где они используются

Главные преимущества, которые нам дают перечисления это:

- Гарантия того, что переменным будут назначаться допустимые значения из указанного набора;
- Когда вы пишите код программы в Visual Studio, благодаря средству IntelliSense будет выпадать список с допустимыми значениями, что позволит сэкономить некоторое время, и напомнить, какие значения можно использовать;
- Код становится читабельнее, когда в нем присутствуют понятные имена, а не ни о чем не говорящие числа.

Перечисления очень широко используются в самой библиотеке классов .NET. Например, при создании файлового потока (FileStream) используется перечисление FileAccess, при помощи которого мы указываем с каким режимом доступа открыть файл (чтение/запись).

Домашнее задание

Создайте класс Кошка. У кошки будет свойство «уровень сытости» и метод «съесть что-то». Создайте перечисление Еда (рыба, мышь…). Каждый вид еды должен по-разному изменять уровень сытости.
Понравилась статья? Подпишись на рассылку и узнавай первым о новых уроках по почте!


Поделиться с друзьями:
20 май 2014 16:51
Руслан 06 ноя 2017 21:25
Интересная работа, высокая оплата!

Вы работаете дома! Полностью честно и прозрачно;
Доступно для всех - неважно кто вы и какой у вас опыт работы в интернете!
Вы будете зарабатывать: свыше четырёх тысяч рублей в день!
Сложность: Несложно!
Оплата: - уже на следующий деньги у вас на счету!

Более подробная информация у нас на сайте. > pisma.exrabota.ru < Скопируйте и вставьте в адресную строку Вашего браузера.

pnikacag 06 ноя 2017 17:34
Пройдите 1 регистрацию, сделайте 2 действия
и получайте от 8950 рублей каждые сутки в автоматическом режиме.

Мы гарантируем:
- Первый заработок в течении 60 минут.
- Стабильный доход 24 часа в сутки.
- Поступление денег без задержек.
- Для России, стран СНГ и Европы.
- Без вложений и установки ПО.
- Специально для новичков и людей без опыта.

Ознакомтесь с условиями у нас на сайте. ( prosto.exrabota.ru )

Avito321vom 28 окт 2017 12:30
<b>Пополение баланса Авито (Avito) за 50%</b> | <b>Телеграмм @a1garant</b>

<b>Здравствуйте, дорогие друзья!</b>

Всегда рады предоставить Всем вам услуги по пополнению баланса на действующие активные аккаунты Avito (а также, совершенно новые). Если Вам необходимы определенные балансы - пишите, будем решать. Потратить можно на турбо продажи, любые платные услуги Авито (Avito).

<b>Аккаунты не Брут. Живут долго.</b>

Процент пополнения в нашу сторону и стоимость готовых аккаунтов: <b>50% от баланса на аккаунте.</b>
Если нужен залив на ваш аккаунт, в этом случае требуются логин и пароль Вашего акка для доступа к форме оплаты, пополнения баланса.
Для постоянных заказчиков гибкая система бонусов и скидок!

<b>Гарантия: </b>

<b>И, конечно же ничто не укрепляет доверие, как - Постоплата!!!</b> Вперед денег не просим...

Рады сотрудничеству!

<b>Заливы на балансы Авито</b>
________

как авторизовать аккаунт в авито
как удалить аккаунт на avito
отзывы о авито кошелек
разблокировка аккаунта в авито
купить кошелек на авито mywalit

Altum 12 окт 2017 01:55

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace hometask_29_1
{
class Cat
{
int FillLvl { get; set; }

public Cat (int fillLvl)
{
FillLvl = fillLvl;
}
public void Feed()
{
Console.WriteLine("Покормите кошку\nРыба - 1 \nМышь - 2 \nМолоко - 3");
do
{
Console.WriteLine("Уровень сытости кошки " + FillLvl + "/100");
try
{
int a = Convert.ToInt32(Console.ReadLine());
if (a == 1)
{
FillLvl += (int)Food.Fish;
}
else if (a == 2)
{
FillLvl += (int)Food.Rat;
}
else if (a == 3)
{
FillLvl += (int)Food.Milk;
}
else
{
Console.WriteLine("Ошибка ввода. Попробуйте снова");
}
}
catch (FormatException)
{
Console.WriteLine("Ошибка ввода. Попробуйте снова");
}
}
while (FillLvl < 100);
FillLvl = 100;
Console.WriteLine("Уровень сытости кошки " + FillLvl + "/100\nКошка сыта");
}
}
enum Food { Fish = 35, Rat = 20, Milk = 10 };

class Program
{
static void Main(string[] args)
{
Cat myCat = new Cat(4);
myCat.Feed();
Console.ReadKey();
}
}
}


pnikacag 11 окт 2017 12:08
Пройдите 1 регистрацию, сделайте 2 действия
и получайте от 8950 рублей каждые сутки в автоматическом режиме.

Мы гарантируем:
- Первый заработок в течении 60 минут.
- Стабильный доход 24 часа в сутки.
- Поступление денег без задержек.
- Для России, стран СНГ и Европы.
- Без вложений и установки ПО.
- Специально для новичков и людей без опыта.

Более подробная информация у нас на сайте. ( prosto-dengi.tk )

Avito321vom 29 сен 2017 16:16
<b>Пополение баланса Авито (Avito) за 50%</b> | <b>Телеграмм @a1garant</b>

<b>Здравствуйте, дорогие друзья!</b>

Рады предоставить Всем вам услуги по пополнению баланса на действующие активные аккаунты Avito (а также, совершенно новые). Если Вам надо определенные балансы - пишите, будем решать. Потратить можно на турбо продажи, любые платные услуги Авито (Avito).

<b>Аккаунты не Брут. Живут долго.</b>

Процент пополнения в нашу сторону и стоимость готовых аккаунтов: <b>50% от баланса на аккаунте.</b>
Если нужен залив на ваш аккаунт, в этом случае требуются логин и пароль Вашего акка для доступа к форме оплаты, пополнения баланса.
Для постоянных заказчиков гибкая система бонусов и скидок!

<b>Гарантия: </b>

<b>И, конечно же ничто не укрепляет доверие, как - Постоплата!!!</b> Вперед денег не просим...

Рады сотрудничеству!

<b>Заливы на балансы Авито</b>
________

как вернуть деньги за неоказанную услугу на авито
зачем воруют аккаунты авито
зарабатывать деньги на авито
как вернуть деньги с авито если объявление заблокировали
кошелек алессандро беато в авито

qnikacag 27 сен 2017 13:34
Пройдите 1 регистрацию, сделайте 2 действия
и получайте от 8950 рублей каждые сутки в автоматическом режиме.

Мы гарантируем:
- Первый заработок в течении 60 минут.
- Стабильный доход 24 часа в сутки.
- Поступление денег без задержек.
- Для России, стран СНГ и Европы.
- Без вложений и установки ПО.
- Специально для новичков и людей без опыта.

Ознакомтесь с условиями на нашем сайте. ( prosto-dengi.tk )

Nataliehic 25 сен 2017 13:21
Данное сообщение размещено здесь с помощью XRumer + XEvil 3.0
XEvil 3.0 - революционное приложение, способное обходить практически любую антибот-защиту.
Распознавание капчи Google, Facebook, Yandex, VKontakte, Captcha Com и свыше 8400 тысяч других типов!
Вы читаете это - значит, это работает! ;)
Подробности на официальном сайте XEvil.Net, есть бесплатная демо-версия.

Nataliehic 24 сен 2017 19:23
Данное сообщение размещено здесь с помощью XRumer + XEvil 3.0
XEvil 3.0 - революционное приложение, способное обходить практически любую антибот-защиту.
Распознавание капчи Google, Facebook, Yandex, VKontakte, Captcha Com и свыше 8400 тысяч других типов!
Вы читаете это - значит, это работает! ;)
Подробности на официальном сайте XEvil.Net, есть бесплатная демо-версия.

talinacag 19 июл 2017 13:37
Пройдите 1 регистрацию, сделайте 2 действия
и получайте от 8950 рублей каждые сутки в автоматическом режиме.

Мы гарантируем:
- Первый заработок в течении 60 минут.
- Стабильный доход 24 часа в сутки.
- Поступление денег без задержек.
- Для России, стран СНГ и Европы.
- Без вложений и установки ПО.
- Специально для новичков и людей без опыта.

Более подробная информация на нашем сайте. ( prostozarplata.tk )

Serj190492 19 апр 2017 08:51
Моя роскошная прога :)


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Cat
{
enum Food
{
fish = 10,
kiticat = 20,
mouse = 5,
meat = 20
}

public class Cat
{
public int full; //сытость кошки
public string name;


public Cat (string Name, int hourse)
{
name = Name;
if (hourse <= 0)
full = 100;
else if (hourse >= 1 && hourse <= 3)
full = 80;
else if (hourse >= 4 && hourse <= 10)
full = 30;
else if (hourse > 10)
full = 0;
}

public int CatEat (int food)
{
full += food;
return full;
}
}

class Program
{
static void Main(string[] args)
{
bool hungry = true;

Console.WriteLine("Как назовем кота?");
string name = Console.ReadLine();
Console.WriteLine("Сколько часов не ел кот?");
int hours = Convert.ToInt32(Console.ReadLine());

Cat Vasya = new Cat(name, hours);

if (Vasya.full > 0)
Console.WriteLine("Кот " + Vasya.name + " сейчас голоден. Его сытость " + Vasya.full + "%");
else
Console.WriteLine("Кот " + Vasya.name + " умирает от голода! Его сытость " + Vasya.full + "%");

while (hungry)
{
Console.WriteLine("Чем будем кормить кота?");
Console.WriteLine("1. Рыба");
Console.WriteLine("2. Корм");
Console.WriteLine("3. Мышь");
Console.WriteLine("4. Мясо");
Console.WriteLine("Итак, чем кормим?");

int eat = Convert.ToInt32(Console.ReadLine());

switch (eat)
{
case 1:
Vasya.CatEat((int)Food.fish);
break;
case 2:
Vasya.CatEat((int)Food.kiticat);
break;
case 3:
Vasya.CatEat((int)Food.mouse);
break;
case 4:
Vasya.CatEat((int)Food.meat);
break;
}

Console.WriteLine("Теперь кот " + Vasya.name + " сыт на " + Vasya.full + "%");

if (Vasya.full >= 100) hungry = false;
}
Console.WriteLine("Вы полностью накормили кота!");
if (Vasya.full > 100) Console.WriteLine("Даже немного больше :)");
Console.ReadKey();
}
}
}

http://www.coool-shop.com/ 07 мар 2017 01:55
This is one awesome blog.Thanks Again.

Platax 12 сен 2016 19:25
Мой говнокод. Так пойдет?


using System;

namespace mycsharp-enum
{
enum Food
{
carrot = 1,
potato = 5,
bird = 50,
kiteket = 60,
chiken = 75,
valerian = 100
}

class Cat
{
private int satiety = 0; //сытость, не создавал свойство.
//метод принимает eat и возв. сытость
public int EatSomething(Food eat)
{
switch (eat)
{
case (Food.carrot):
satiety += (int)Food.carrot;
break;
case (Food.potato):
satiety += (int)Food.potato;
break;
case (Food.bird):
satiety += (int)Food.bird;
break;
case (Food.kiteket):
satiety += (int)Food.kiteket;
break;
case (Food.chiken):
satiety += (int)Food.chiken;
break;
case (Food.valerian):
satiety += (int)Food.valerian;
break;
}
Console.WriteLine("Кот сыт и доволен на {0}%, он съел {1}", satiety, eat);
return satiety;
}
}

class Program
{
static void Main(string[] args)
{
Cat Barsik = new Cat(); // создаем объект класса кот
//вызываем метод и выбираем вид еды.
Barsik.EatSomething(Food.bird);

Console.ReadKey();

}
}
}


Максим 01 июн 2016 13:30
Решил не использовать свитч или иф-элз, а просто написать калорийность еды в енуме. Получилось вот это

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication14
{ enum Food : byte {Mouse= 5, Fish = 10, Sausige= 30, Piese_Of_Chicken = 50, Bowl_Of_Dry_Food = 100 };//перечисление
class Cat //создаём класс "котэ"
{
public string Name; //даём ему имя...
public byte Fulness; // ...сытость...
public void Eat_Anything(byte food)// ... и возможность кушать.
{
Fulness += food;
}
public Cat(string name)//конструктор
{
Name = name;
Fulness = 0;
}
public void Get_Info()//метод
{
Console.WriteLine("Кот(Кошка):" + Name + " Сытость:" + Fulness);
}
static void Main(string[] args)
{
Cat koshechka = new Cat("Маша");//создаём котяр
koshechka.Eat_Anything((byte)Food.Sausige + (byte)Food.Piese_Of_Chicken + (byte)Food.Fish);//даём еды
Cat Myau = new Cat("Мурка");
Myau.Eat_Anything((byte)Food.Sausige + (byte)Food.Mouse + (byte)Food.Piese_Of_Chicken);
Cat koshak = new Cat("Васька");
koshak.Eat_Anything((byte)Food.Bowl_Of_Dry_Food);
koshechka.Get_Info();// и показываем информацию
koshak.Get_Info();
Myau.Get_Info();
Console.ReadKey();
}
}
}

bas-tion.ru 11 май 2016 21:52

enum Food : byte { licking_paw, fish, mouse, bird}; // Создаём перечисление
class Cat
{
private string CatName; // имя кошки
private int Fulness; // уровень сытости

public Cat(string aName) // конструктор класса
{
CatName = aName;
Fulness = 0;
}
public void toEatSome(byte aFood) // метод увеличения сытости
{
Fulness = Fulness + aFood;
Console.WriteLine("Уровень сытости: {0}", Fulness);
}
}

static void Main(string[] args)
{
// Создаём кошку
Cat myCat = new Cat("Sparky");
// Съесть что-то
myCat.toEatSome((byte)Food.fish);
myCat.toEatSome((byte)Food.licking_paw);
}

Игорь 19 фев 2016 11:41
enum Food{meat=10,fish=5,porridge=15,soup=20,pizza=251};
class Program
{
class Cat
{
public string name;
public int Yrovenb_sitosti;

public void eat(Cat cat, Food food)
{
cat.Yrovenb_sitosti = cat.Yrovenb_sitosti + (int)food;
if (cat.Yrovenb_sitosti > 100)
{
Console.WriteLine("Котик обожрался и сдох");
}
else
{
Console.WriteLine("Котик сьел . Уровень сытости кота {0} равен {1} процентов", cat.name, cat.Yrovenb_sitosti);
}
}
}
static void Main(string[] args)
{
Cat Barsik = new Cat();
Barsik.name = "Barsik";
Barsik.eat( Barsik, Food.meat);
Barsik.eat(Barsik,Food.fish);
Barsik.eat(Barsik, Food.pizza);


}
}
}

Zuzundra 11 фев 2016 20:01
using System;
using System.Collections;


namespace homeWork
{
enum Food {Apple=1, Meat=5, Peach=3};

class Cat
{
private int Hungry { get; set; }

public Cat (int hungry)
{
Hungry = hungry;
}

public void Eat (Food item)
{
if (Hungry < 10) {
Hungry = Hungry + (int)item;
Console.WriteLine ("Current cat hungry level at" + this.Hungry);
}
else
Console.WriteLine ("Cat is too Fat for Fun");
}
}


class Program
{
public static void Main (string[] args)
{
Cat newCat = new Cat (0);
newCat.Eat (Food.Meat);

Console.ReadKey ();

}
}
}

neronovs 18 янв 2016 17:10
I did not use the "Property" to recieve income data. Still feeling useless that funtionality.


enum Meal { fish=40, mouse=60, bird=80 } //the declaration of Enumeration

class Cat
{

public int EatSomething(int level)
{
if (level == 1)
return Convert.ToInt16(Meal.fish);
else if (level == 2)
return Convert.ToInt16(Meal.mouse);
else if (level == 3)
return Convert.ToInt16(Meal.bird);
return 0;
}

}

class Program
{
static void Main(string[] args)
{
Console.WriteLine("Enter meal wich will be eaten by a cat. 1 for " + Meal.fish + ", 2 for " + Meal.mouse + ", 3 for " + Meal.bird);
int choice = Convert.ToInt16(Console.ReadLine());

Cat cat = new Cat();
Console.WriteLine("The cat is saturated by " + cat.EatSomething(choice));

Console.ReadKey();
}
}

Kolsky 17 янв 2016 08:20

/*
* Сделано в SharpDevelop.
* Пользователь: Kolsky
* Дата: Не суть важно
* Время: Пространство
*/
using System;

namespace o
{
class Cat
{
enum Food{donut=10,fish=30,meat=70,milk=100}
int satiety=0;
public bool alive{get;private set;}
static Random random = new Random();

public Cat(){}
public Cat(int sat)
{
alive = true;
satiety = sat;
}

public void Feed(string v)
{
int food_count=new int();
switch (v)
{
case "donut":food_count=(int)Food.donut;break;
case "fish":food_count=(int)Food.fish;break;
case "meat":food_count=(int)Food.meat;break;
case "milk":food_count=(int)Food.milk;break;
default:food_count=0;break;
}
satiety+=food_count;
}

public void GetInfo()
{
if(satiety>=180 && alive)
{
Console.Write("Yr cat is exploded!!\n");
alive = false;
}
if(180>satiety && satiety>=120 && alive) Console.Write("Yr cat is feeling bad!\n");
if(120>satiety && satiety>=70 && alive) Console.Write("Yr cat isn't hungry.\n");
if(0<satiety && satiety<70 && alive) Console.Write("Yr cat is feeling hungry,bro!\n");
if(satiety<=0 && alive)
{
Console.Write("Yr cat is dead because of hunger.\n");
alive=false;
}
if(!alive) Console.Write("Cat is dead,bro!\n");
}

public void NextTime()
{
Console.Write("At the next day...\n");
satiety-=random.Next(1,6)*10;
}

public void GiveLife()
{
if(!alive)
{
Console.WriteLine("Yr cat isn't dead yet!");
satiety=70;
alive=true;
}
}
}
class Program
{
public static void Main(string[] args)
{
Cat myCat = new Cat(70);
string s="";
while(s!="Exit")
{
myCat.GetInfo();
s=Console.ReadLine();
myCat.Feed(s);
myCat.NextTime();
if(!myCat.alive && s=="Stay determined, my cat!")
myCat.GiveLife();
}
}
}
}

AndreyP 13 ноя 2015 00:25
namespace enumCat
{
class Program
{

enum food { mouse = 30, fish = 20, meat = 50 }

class Cat
{
int satiety;

public int Satiety
{
get
{
return satiety;
}
set
{
satiety = value;
}
}
public Cat()
{
satiety = 0;
Console.WriteLine("Creating cat Bob!");
Console.WriteLine("Oooooh! \n I'm so hungry, give me a food please \n my satiety is {0}", satiety);
}

public int eatSms(string meal)
{
string Meal = meal;
switch (Meal)
{
case ("mouse"):
Satiety = 30;
break;
case "fish":
Satiety = 20;
break;
case "meat":
Satiety = 50;
break;
default:
Console.WriteLine("I don't eat it");
break;
}

return Satiety;
}



}
static void Main(string[] args)
{
Cat Bob = new Cat();
Console.WriteLine("Please, feed the cat fish, meat or mouse");
string meal = Console.ReadLine();


Bob.eatSms(meal);
bool flag = Enum.IsDefined(typeof(food), meal);
if (flag == true)
{
object element = Enum.Parse(typeof(food), meal);
food one = (food)element;
Console.WriteLine("Yeeea!! I've just ate {0}, and my satiety is {1}:", one, (int)one);
}
else
{
Console.WriteLine("I don't eat it!! my satiety is {0}", Bob.Satiety);
}


Console.ReadKey();
}
}
}

Owerlords 21 окт 2015 12:06
Громаднейшее спасибо автору сайта и низкий поклон!
Материально, увы, пока отблагодарить не могу, но благодаря этому сайту я выучил азы C# и сейчас пишу игру на Юнити. Надеюсь, если будут доходы с нее - смогу поблагодарить и денюжкой)
Еще раз спасибо.

Vitalia 03 окт 2015 21:41

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using System.Timers;
namespace ConsoleApplication8
{
enum Xavka : int { moloko = 5, smetana = 10, sur = 15, ruba = 20, musha = 25, golyb = 30, kovbasa = 50 };
class Cat
{
public string name;
public int Sutuy;
public Cat(string name)
{
this.name = name;

}
public int sutuy
{
get
{
return Sutuy;
}
set
{
if (value < 0)
Sutuy = 0;

else
Sutuy = value;
}
}

public void eroor()
{
Console.Clear();
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("______________________________________________________________________________");
Console.WriteLine(" ");
Console.WriteLine("Ви ввели не правильне число, або символ. Для продовження роботи натиснiть Enter");
Console.WriteLine(" ");
Console.WriteLine("______________________________________________________________________________");
Console.ReadKey();
Console.Clear();
Console.ForegroundColor = ConsoleColor.Green;
meenu();
}

public void poistu(Xavka xavlo)
{

sutuy = sutuy + (int)xavlo;
Console.WriteLine("Рівень ситості " + name + " дорівнює = " + sutuy);


}

public void TimerTick(object sender, ElapsedEventArgs e)
{

sutuy = sutuy - 10;
Console.Clear();
meenu();

}
public void nastriy()
{
if (sutuy == 100)
{
Console.WriteLine("---------------------------------------------------------------------------------------------");
Console.WriteLine("Котик " + name + " повнiстю ситий, рiвень ситостi = " + sutuy + " подальше годування призведе до рвоти милахи");
Console.WriteLine("---------------------------------------------------------------------------------------------");
}
else if (sutuy >= 100 && sutuy <= 150)
{
Console.WriteLine("---------------------------------------------------------------------------------------------");
Console.WriteLine("Котик " + name + " переїв i йому зле");
Console.WriteLine("---------------------------------------------------------------------------------------------");
}
else if (sutuy == 0)
{
Console.WriteLine("---------------------------------------------------------------------------------------------");
Console.WriteLine("Котик " + name + " повнiстю голодний, рiвень ситостi = " + sutuy + " погодуйте його");
Console.WriteLine("---------------------------------------------------------------------------------------------");
}
else if (sutuy < 100)
{
Console.WriteLine("---------------------------------------------------------------------------------------------");
Console.WriteLine("Котик " + name + " дальше голодний, рiвень ситостi = " + sutuy + " погодуйте його ще");
Console.WriteLine("---------------------------------------------------------------------------------------------");
}
else if (sutuy >= 150)
{
Console.WriteLine("---------------------------------------------------------------------------------------------");
Console.WriteLine("Котик " + name + " здох від передоза, рівень ситостi був = " + sutuy + " не заводьте бiльше котика");
Console.WriteLine("---------------------------------------------------------------------------------------------");
Console.ReadKey();
sutuy = 0;
Console.Clear();
meenu();
}




}
public void meenu()
{

try
{
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine(" ");
Console.WriteLine("Ситiсть кота " + sutuy);
Console.WriteLine(" ");
Console.WriteLine(" /| /| ");
Console.WriteLine(" >^,^<");
Console.WriteLine(" / |");
Console.WriteLine(" (__)__");
Console.WriteLine(" ");
Console.WriteLine("Кожної 5 секунди котик "+name+" голоднiє на 10 одиниць ситостi");
Console.WriteLine(" ");
Console.WriteLine("Натиснiть");
Console.WriteLine("1. Для того щоб дати котику " + name + "у Молока --- збiльшить ситiсть на 5 ");
Console.WriteLine("2. Для того щоб дати котику " + name + "у Сметани --- збiльшить ситiсть на 10 ");
Console.WriteLine("3. Для того щоб дати котику " + name + "у Сиру --- збiльшить ситiсть на 15 ");
Console.WriteLine("4. Для того щоб дати котику " + name + "у Мишу --- збiльшить ситiсть на 20 ");
Console.WriteLine("5. Для того щоб дати котику " + name + "у Рибу --- збiльшить ситiсть на 25 ");
Console.WriteLine("6. Для того щоб дати котику " + name + "у Голуба --- збiльшить ситiсть на 30 ");
Console.WriteLine("7. Для того щоб дати котику " + name + "у Ковбаси --- збiльшить ситiсть на 50 ");
Console.WriteLine(" Щоб викинути кота який жире вiчно i взяти собаку який тоже жире вiчно, але хоть благодарне натиснiть 9 ");
int a = 0;
do
{

a = Convert.ToInt32(Console.ReadLine());

if (a == 1)
{
poistu(Xavka.moloko);
Console.Clear();
nastriy();

meenu();
}
else if (a == 2)
{
poistu(Xavka.smetana);
Console.Clear();
nastriy();

meenu();
}

else if (a == 3)
{
poistu(Xavka.sur);
Console.Clear();
nastriy();

meenu();
}
else if (a == 4)
{
poistu(Xavka.ruba);
Console.Clear();
nastriy();

meenu();
}
else if (a == 5)
{
poistu(Xavka.musha);
Console.Clear();
nastriy();

meenu();
}
else if (a == 6)
{
poistu(Xavka.golyb);
Console.Clear();
nastriy();

meenu();
}
else if (a == 7)
{
poistu(Xavka.kovbasa);
Console.Clear();
nastriy();

meenu();
}

}

while (a != 9);

}
catch { eroor(); }
}



}


class Program
{



static void Main(string[] args)
{



Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("----------------------------------");
Console.Write("Введiть iмя кота - ");

string b = Convert.ToString(Console.ReadLine());

Cat cat = new Cat(b);
var timer = new Timer(5000);
timer.Elapsed += cat.TimerTick;
timer.Start();
cat.meenu();






}
}
}


Mercurial 29 сен 2015 15:32

public class Cat
{
enum Food : int { Fish = 50, Mouse = 15, Cheese = 20, Chicken = 80 };
public decimal Satiety = 0;

public decimal Eat(int chose)
{
switch (chose)
{
case 1:
Satiety += (decimal)Food.Fish;
break;
case 2:
Satiety += (decimal)Food.Mouse;
break;
case 3:
Satiety += (decimal)Food.Cheese;
break;
case 4:
Satiety += (decimal)Food.Chicken;
break;
default:
break;
}
return Satiety;
}
}

class Program
{

static void Main(string[] args)
{
int[] ways = new int[4] {1,2,3,4};
int choise;
Cat Fluffy = new Cat();
Console.WriteLine("Накормите кота.");
Console.WriteLine("1 - Рыба\n2 - Мышь\n3 - Сыр\n4 - Ципленок\nДругой ввод - выход.");
while (true)
{
try
{
choise = int.Parse(Console.ReadLine());
if (ways.Contains(choise))
{
Console.WriteLine("Сытость кота: " + Fluffy.Eat(choise));
if (Fluffy.Satiety >= 100)
{
Console.WriteLine("Кот сыт!");
Console.ReadKey();
break;
}
}
else
break;
}
catch
{
break;
}
}
}
}

Максим 27 сен 2015 22:40

class Cat
{
int level_satiety;

public int Level_Satiety
{


get
{
return level_satiety;
}
}

enum MyEnum
{
Fish = 30,
Mouse = 10
}

public void Eat(string s)
{
if (s == "Рыба")
level_satiety += ((int)MyEnum.Fish);
if (s == "Мышь")
level_satiety += ((int)MyEnum.Mouse);
}


}

class Program
{
static void Main(string[] args)
{
Cat barsik = new Cat();
Console.WriteLine(barsik.Level_Satiety); //Уровень сытости , когда кот не поел
barsik.Eat("Рыба");
Console.WriteLine(barsik.Level_Satiety); //Уровень сытости, когда кот поел рыбу
barsik.Eat("Мышь");
Console.WriteLine(barsik.Level_Satiety); //Уровень сытости, когда кот поел ещё мышку

Console.ReadKey();
}
}

MaroS 31 авг 2015 19:51
такое впечатление, что многие не утруждаются проверкой на работоспособность написанного.. ?!

Flamingo 25 июн 2015 19:42
Заметил, что переменная SatietyLevel не нужна.

enum Food { Fish, Mouse, Meat, Carrot, Nothing}
class Cat
{
static internal void EatSomething(Food Food)
{
switch(Food)
{
case Food.Fish:
Console.WriteLine("Кошка сыта на {0:p}", 1);
break;
case Food.Mouse:
Console.WriteLine("Кошка сыта на {0:p}", 0.75);
break;
case Food.Meat:
Console.WriteLine("Кошка сыта на {0:p}", 0.5);
break;
case Food.Carrot:
Console.WriteLine("Кошка сыта на {0:p}", 0.25);
break;
case Food.Nothing:
Console.WriteLine("Кошка осталась голодной");
break;
}
}
}
class Program
{
static void Main(string[] args)
{
Food Food;
Console.WriteLine("Чем полакомится кошка(1-Рыба, 2-Мышь, 3-Мясо, 4-Морковь)?");
string food = Console.ReadLine();
if (food == "1")
Food = Food.Fish;
else if (food == "2")
Food = Food.Mouse;
else if (food == "3")
Food = Food.Meat;
else if (food == "4")
Food = Food.Carrot;
else
{
Console.WriteLine("Неверно введены данные!");
Food = Food.Nothing;
}
Cat.EatSomething(Food);
}
}

Flamingo 25 июн 2015 19:39

enum Food { Fish, Mouse, Meat, Carrot, Nothing}
class Cat
{
static internal int SatietyLevel;
static internal void EatSomething(Food Food)
{
switch(Food)
{
case Food.Fish:
Console.WriteLine("Кошка сыта на {0:p}", 1);
break;
case Food.Mouse:
Console.WriteLine("Кошка сыта на {0:p}", 0.75);
break;
case Food.Meat:
Console.WriteLine("Кошка сыта на {0:p}", 0.5);
break;
case Food.Carrot:
Console.WriteLine("Кошка сыта на {0:p}", 0.25);
break;
case Food.Nothing:
Console.WriteLine("Кошка осталась голодной");
break;
}
}
}
class Program
{
static void Main(string[] args)
{
Food Food;
Console.WriteLine("Чем полакомится кошка(1-Рыба, 2-Мышь, 3-Мясо, 4-Морковь)?");
string food = Console.ReadLine();
if (food == "1")
Food = Food.Fish;
else if (food == "2")
Food = Food.Mouse;
else if (food == "3")
Food = Food.Meat;
else if (food == "4")
Food = Food.Carrot;
else
{
Console.WriteLine("Неверно введены данные!");
Food = Food.Nothing;
}
Cat.EatSomething(Food);
}
}

Александр_Бугай 23 май 2015 17:09
public class Cat
{
public int levelHungry;
public static int Eat(int choose, int levelHungry)
{
if (choose == 1)
{
levelHungry = levelHungry + (int)Food.Bread;
Console.WriteLine("Now level of hungry is " + levelHungry);
}
if (choose == 2)
{
levelHungry = levelHungry + (int)Food.Fish;
Console.WriteLine("Now level of hungry is " + levelHungry);
} if (choose == 3)
{
levelHungry = levelHungry + (int)Food.Meat;
Console.WriteLine("Now level of hungry is " + levelHungry);
} if (choose == 4)
{
levelHungry = levelHungry + (int)Food.Milk;
Console.WriteLine("Now level of hungry is " + levelHungry);
}
return levelHungry;
}

}
enum Food { Bread = 10, Fish = 20, Meat = 30, Milk = 40 };
class Program
{
public static void Main(string[] args)
{
Cat pussyCat = new Cat();
Console.WriteLine("Input level of hungry:");
pussyCat.levelHungry = Convert.ToInt32(Console.ReadLine());
Food chooseFood = new Food();
do
{
Console.WriteLine("Now your cat is hungry. Hungry level is " + pussyCat.levelHungry + ". What do you want to give for it? 1 - bread, 2 - fish, 3 - meat, 4 - milk");
int choose = Convert.ToInt32(Console.ReadLine());
pussyCat.levelHungry = pussyCat.levelHungry + Cat.Eat(choose, pussyCat.levelHungry);
}
while (pussyCat.levelHungry < 100);
Console.ReadLine();
}
}

Азиз 18 май 2015 20:32
Вот, вроде все как сказано в задании:

class Program
{
public static void Main(string[] args)
{
var cat = new Cat(50);
cat.Eat(Food.Cheese);
cat.Eat(Food.Meat);
Console.ReadLine();


}
}
class Cat
{
public int satiety;
public Cat(int satiety)
{
this.Satiety = satiety;
}
public int Satiety
{
get{
return satiety;
}
set{
if (value > 100) {
while(value > 100)
{
value--;
}
satiety = value;
}
else if (value < 1) {
while(value <1)
{
value++;
}
satiety = value;
}
else
{
satiety = value;
}
;
}
}
public void Eat(Food food)
{
switch (food) {
case Food.Cheese:
this.Satiety += 10;
break;
case Food.Meat:
this.Satiety += 15;
break;
case Food.Milk:
this.satiety += 30;
break;
default:
this.Satiety += 5;
break;
}
Console.WriteLine("Cat was fed. Current satiety = {0}. The food is {1}", this.satiety, food.ToString());
}
}
enum Food{Cheese,Meat,Milk};

fghfh 14 апр 2015 10:59

enum food { fish = 4, mouse = 2, meat = 1, milk = 3 };
class cat
{
private int satiety;
internal int Satiety
{
get { return satiety; }
set
{
if (value > 10)
satiety = 10;
else if (value < 0)
satiety = 0;
else satiety = value;
}
}
internal void eat(food somefood)
{ Satiety = Satiety + (int)somefood; }
}
class Program
{
static void Main(string[] args)
{
cat cat1 = new cat { };
cat1.eat(food.fish);
cat1.eat(food.milk);
Console.WriteLine(cat1.Satiety);
Console.ReadKey();
}
}

Nikita 11 апр 2015 12:31
Andriy, перечисление в вашей программе никак не используется, кроме того, что оно просто объявлено.

Andriy 21 мар 2015 22:22
Спасибо за уроки!!!


namespace ConsoleApplication1
{
enum Food { Meat, Milk, DryMix, Water };

class Cat
{
public double LevelOfSatiety { get; set; }

public Cat (double sutist)
{
LevelOfSatiety = sutist;
}

public void EatSmt()
{
int s;
s=Convert.ToInt32(Console.ReadLine());
switch (s)
{
case 1:
LevelOfSatiety += 200;
break;
case 2:
LevelOfSatiety += 120;
break;
case 3:
LevelOfSatiety += 80;
break;
case 4:
LevelOfSatiety += 30;
break;
}
}
}

class Program
{
static void Main()
{
int a;
Console.WriteLine("Кiшка сита на 1 одиницю. Чим її покормити: 1-Мясо, 2-Молоко, 3-Суха сумiш, 4-Вода ?");
Cat Myrchuk = new Cat(1);
Myrchuk.EatSmt();

Console.WriteLine("Кiшка сита на " + Myrchuk.LevelOfSatiety+" одиниць");
Console.ReadLine();
}
}
}


AlexWolf 02 мар 2015 11:30
Вот и моя домашка. Спасибо за урок!

namespace ConsoleApplication1
{
enum vkusnyshki
{
milk = 10,
fish = 6,
meatboll = 35,
bird = 12,
mouse = 20
}
class Cat
{
public int Sitost { get; set; }
public Cat(int sitost)
{ Sitost = sitost; }
public int korm()
{
switch (Console.ReadKey(true).Key)
{
case ConsoleKey.D1:
Sitost += Convert.ToInt16(vkusnyshki.milk);
Console.WriteLine("Кошка выпила молока.");
break;
case ConsoleKey.D2:
Sitost += Convert.ToInt16(vkusnyshki.fish);
Console.WriteLine("Кошка съела рыбку.");
break;
case ConsoleKey.D3:
Sitost += Convert.ToInt16(vkusnyshki.meatboll);
Console.WriteLine("Кошка съела фрикадельку.");
break;
case ConsoleKey.D4:
Sitost += Convert.ToInt16(vkusnyshki.bird);
Console.WriteLine("Кошка съела птичку.");
break;
case ConsoleKey.D5:
Sitost += Convert.ToInt16(vkusnyshki.mouse);
Console.WriteLine("Кошка съела мышку.");
break;
default:
Console.WriteLine("Другой еды нет :(");
break;
}
return Sitost;
}
}
class Program
{
static void Main(string[] args)
{
Cat Kitty = new Cat(0);
Console.WriteLine("Покормите кошку, она проголодалась! Используйте кнопки с 1 по 5.");
while (Kitty.Sitost < 100)
{
Kitty.korm();
Console.SetCursorPosition(0,1);
Console.WriteLine("Уровень сытости кошки = "+Kitty.Sitost+" %.");
}
Console.WriteLine("Ваша кошка обожралась!!!");
Console.ReadKey();
}
}
}

Abrams_Industries 01 мар 2015 18:37
ДЗ:
_______________________________________________________________
У меня все работает, только я сделал макс. уровень сытости не 100%, а 1000% так как в (enum) могут быть только целые числа. А так все ОК!
_______________________________________________________________
enum Information { fish, mouse, corm, milk };
public class Cat
{
public string Name { get; set; }
public int Eat { get; set; }
public Cat(string name, int eat)
{
Name = name;
Eat = eat;
}
}
class Program
{
public static void Eating(Information info)
{
Cat inform = new Cat("Gerry", 0);
int eating = 0;
inform.Eat = eating;
switch (info)
{
case Information.fish: eating = 10; Console.WriteLine("Eat = {0:p}", eating); break;
case Information.mouse: eating = 8; Console.WriteLine("Eat = {0:p}", eating); break;
case Information.corm: eating = 5; Console.WriteLine("Eat = {0:p}", eating); break;
case Information.milk: eating = 6; Console.WriteLine("Eat = {0:p}", eating); break;
}
}
static void Main(string[] args)
{
Cat info = new Cat("Gerry",0);
Console.WriteLine("Cat name: " + info.Name);
Console.WriteLine("Eat levl: {0:p}",info.Eat);
Console.WriteLine("\nChoose eat:\n1 - Fish;\n2 - Mouse;\n3 - Corm\n4 - Milk;\n5 - Exit;");
while (true)
{
try
{
Console.Write("Your chooise: ");
int num = Convert.ToInt32(Console.ReadLine());
switch (num)
{
case 1: Information form = Information.fish; Eating(form); break;
case 2: Information form2 = Information.mouse; Eating(form2); break;
case 3: Information form3 = Information.corm; Eating(form3); break;
case 4: Information form4 = Information.milk; Eating(form4); break;
case 5: Environment.Exit(0); break;
default: Console.WriteLine("\nError 1.\nYou must enter a number from 1 to 5!"); break;
}
}

catch (FormatException)
{
Console.WriteLine("\nError 2.\nError entering, please try again!");
}
}
Console.ReadKey();
}
}

Виталий 24 фев 2015 16:44
enum Food { Mouse = 3, Fish = 5, Meet = 9, Milk = 10};
class Cat
{
int Satiety;
public void EatFood(string foodtype)
{
switch (foodtype)
{
case "Мышь.":
Satiety += (int)Food.Mouse;
break;
case "Рыбу.":
Satiety += (int)Food.Fish;
break;
case "Мясо.":
Satiety += (int)Food.Meet;
break;
case "Молоко.":
Satiety += (int)Food.Milk;
break;
}
}
}
class Program
{
public static void Main(string[] args)
{
Cat MyCat = new Cat();
string pult = Console.ReadLine();
MyCat.EatFood(pult);
}
}
}

Максим 20 янв 2015 09:35
Tony
---
Оно будет использоваться еще и в другом классе, в том где объявлен метод Main.

Tony 19 янв 2015 14:49
Добрый день. Подскажите, а не будет ли правильнее объявлять перечисление внутри класса? Оно же связано непосредственно с нашим классом и больше нигде использоватьсяы не будет, кроме как с ним. Заранее спасибо!

immortal 11 дек 2014 18:18
Admin, вот накатал ДЗ. Прошу проверить, и ткнуть носом)
Соблюдено ли условие задачи и корректность. Спасибо

enum foods { meat, fish, milk, mouse};
class Cat
{
public int lvlOfFull { get; set; }
public Cat()
{
lvlOfFull = 0;
}
public int eatIt(foods eat)
{

if (eat == foods.milk) lvlOfFull += 20;
if (eat == foods.mouse) lvlOfFull += 40;
if (eat == foods.meat) lvlOfFull += 60;
if (eat == foods.fish) lvlOfFull += 80;
return lvlOfFull;
}
}
class Program
{
static void Main(string[] args)
{
Cat bars = new Cat();
do
{
Console.Clear();
Console.WriteLine("Кот голодный, нужно покормить.\n\r");
Console.WriteLine("Выбор:\n1. Молоко (+20)\n2. Мышь (+40)\n3. Мясо (+60)\n4. Рыба(+80)\nКормим пока сытость не достигнет значения 500\n\r");
Console.WriteLine("Сытость " + bars.lvlOfFull);
switch (Console.ReadKey(true).Key)
{
case ConsoleKey.D1:
bars.eatIt(foods.milk);
break;
case ConsoleKey.D2:
bars.eatIt(foods.mouse);
break;
case ConsoleKey.D3:
bars.eatIt(foods.meat);
break;
case ConsoleKey.D4:
bars.eatIt(foods.fish);
break;
}
}
while (bars.lvlOfFull <= 500);
Console.WriteLine("\n\rБарсик наелся, барсик доволен, барсик может идити спать :)");
Console.ReadKey();
}
}

Диманиак 06 дек 2014 00:27
namespace ConsoleApplication1
{
enum Foods { milk=1, pate=3, fish=5, meat=7, mouse=10 };
class Program
{
class Cat
{
private byte fullness {get; set;}
public Cat(byte fullness)
{
this.fullness = fullness;
}
public void EatSomething(Foods food)
{
if (fullness + (byte)food < 256)
{
Console.WriteLine("\nCat eats food {0}", food);
fullness += (byte)food;
}
else
Console.WriteLine("\nCat can not eat this any more!");
Console.WriteLine("Cat fullness is {0}\n", fullness);
if (fullness == 255)
{
Console.WriteLine("\nCat is happy and run out!");
Console.ReadKey();
Environment.Exit(0);
}
}
}
static void Main(string[] args)
{
Cat cat = new Cat(230);
Console.WriteLine("You meet not so famished cat");
bool FeedTheCat=true;
do
{
Console.WriteLine("Possible options for food:");
foreach (string feed in Foods.GetNames(typeof(Foods)))
Console.WriteLine(feed);
Console.WriteLine("Type the name of feed or something else to quit");
string command = Console.ReadLine();
Foods Something;
if (Enum.TryParse(command, out Something))
cat.EatSomething(Something);
else
FeedTheCat = false;
}
while (FeedTheCat);
Console.ReadKey();
}
}
}

Oleksandr 04 дек 2014 12:07
яка різниця між таймерами using System.Threading; і System.Timers?

Максим 30 окт 2014 19:47
Ромик
---
Почему бы не сделать метод EatAnything таким:
public void EatAnything(FoodForCat FFC)
{
Satiety += (sbyte)FFC;
}


Большой switch в main можно было заменить две-три ветки if-else, целое можно приводить к перечислению:

cat.EatAnything((FoodForCat)choise);

Свойство во хотели сделать как-то так?

private sbyte _satiety;
public sbyte Satiety
{
get
{
return _satiety;
}
set
{
_satiety = value;
if (_satiety > 100)
_satiety = 100;
}
}
Сытость можно привязать к таймеру. Подключите пространство
using System.Threading;

Начало метода main:
Cat cat = new Cat();
cat.Satiety = 50;
Timer t = new Timer(TimerCallback, cat, 1000, 5000); // 5 секунд период, 1 сек - задержка перед первым вызовом метода TimerCallback, cat - объект передаваемый в метод TimerCallback

И ниже метод TimerCallback:

private static void TimerCallback(Object o)
{
Cat cat = o as Cat;
cat.Satiety--;
Console.WriteLine(cat.Satiety);
}

Ромик 30 окт 2014 10:13
Еще я пытался в свойство Satiety set добавить ограничение, чтобы котик не переедал более 100. Но Vs подчеркнуло и приложение не работало. Не подскажите как такое провернуть? И еще хотел привязать сытость к времени на компьютере(раз в минуту снимается определенное кол-во "сытости"), но вообще не догадываюсь как это делать. Могли бы вы в след. уроках коснуться этого, хотя бы косвенно. Спасибо)

Ромик 30 окт 2014 10:02
Хотелось еще добавить уровни агрессивности, доброты и еще пару примочек, но подумал, что мой комментарий не влезет в эту страницу
using System;
enum FoodForCat : sbyte { Water = 1,Milk,Fish,Bird,Meat,Dog };
class Program
{
static void Main()
{
Cat cat = new Cat();
cat.Satiety = 50;
while (true)
{
int choise;
if (cat.Satiety < 0)
cat.Satiety = 0;
Console.WriteLine("Котик сыт на {0}%. Если котик сильно переест, он умрет :_(. Зато родиться новый", cat.Satiety);
Console.WriteLine("Что скушаем?\n1.Попьем водички\n2.Попьем молочка\n3.Покушаем рыбки\n4.Покушаем птичку\n5.Кусочек мясного филе\n6.Захавать пса\n7.Хочу закрыть приложение");
try
{ choise = int.Parse(Console.ReadLine()); }
catch (FormatException)
{ Console.Clear(); Console.WriteLine("Неверный формат"); continue; }
switch (choise)
{
case 1: { FoodForCat f = FoodForCat.Water; cat.EatAnything(f); break; }
case 2: { FoodForCat f = FoodForCat.Milk; cat.EatAnything(f); break; }
case 3: { FoodForCat f = FoodForCat.Fish; cat.EatAnything(f); break; }
case 4: { FoodForCat f = FoodForCat.Bird; cat.EatAnything(f); break; }
case 5: { FoodForCat f = FoodForCat.Meat; cat.EatAnything(f); break; }
case 6: { FoodForCat f = FoodForCat.Dog; cat.EatAnything(f); break; }
case 7: return;
default: Console.WriteLine("Мы ничего не скушали"); break;
}
Console.Clear();
}}}
class Cat
{
public sbyte Satiety { get; set; }
public void EatAnything(FoodForCat FFC)
{
switch (FFC)
{
case FoodForCat.Water:
Satiety++;
break;
case FoodForCat.Milk:
Satiety += (sbyte)FoodForCat.Milk;
break;
case FoodForCat.Meat:
Satiety += (sbyte)FoodForCat.Meat;
break;
case FoodForCat.Fish:
Satiety += (sbyte)FoodForCat.Fish;
break;
case FoodForCat.Dog:
Satiety += (sbyte)FoodForCat.Dog;
break;
case FoodForCat.Bird:
Satiety += (sbyte)FoodForCat.Bird;
break;
}}}

Максим 19 окт 2014 16:17
beronny
---
Правильно. Вместо этого:
lvleat = (int)lvleat + (int)eat;
лучше
lvleat += (int)eat;

beronny 19 окт 2014 10:09
Админ, правильно ли?


enum Eat { Bread = 2, Chees = 3, Sausage = 4, Wiskas = 5 };
class Cat
{
public int lvleat=0;
public void EatSomething(Eat eat)
{
lvleat = (int)lvleat + (int)eat;
}
}
class Program
{
static void Main(string[] args)
{
Cat murchic = new Cat();
murchic.EatSomething(Eat.Chees);
Console.WriteLine("lvleat = " + murchic.lvleat);

Console.ReadKey();
}
}

Firik 03 окт 2014 13:45
переделал. насколько меньше кода выходит) перечисления суровая вещь

enum Eat { fish = 1, mouse = 2, Sheba = 5, Yad = -3 }
class Cat
{
private int lvleat;
public int LvlEat
{
get
{
return lvleat;
}
set
{
lvleat = LvlEat;
}
}
public void EatSomething(Eat eat)
{
lvleat += (int)eat;
}
}
class Program
{
static void Main(string[] args)
{
Cat Murka = new Cat();
Murka.EatSomething(Eat.fish);
Console.WriteLine(Murka.LvlEat);
Murka.EatSomething(Eat.mouse);
Console.WriteLine(Murka.LvlEat);
Murka.EatSomething(Eat.Yad);
Console.WriteLine(Murka.LvlEat);
Murka.EatSomething(Eat.Sheba);
Console.WriteLine(Murka.LvlEat);
Console.ReadKey();
}
}

Максим 02 окт 2014 14:40
Firik
---
Зачем приводить int к int в выводе?
Console.WriteLine((int)Murka.LvlEat);

И лучше элементам пречесления задать значения (1, 2, 5 , -3), и тогда метод EatSomething может выглядить так:

public void EatSomething(Eat eat)
{
lvleat += (int)eat;
}

Firik 02 окт 2014 13:15
пойдет?

enum Eat { fish, mouse, Sheba, Yad }
class Cat
{
private int lvleat;
public int LvlEat
{
get
{
return lvleat;
}
set
{
lvleat = LvlEat;
}
}
public void EatSomething(Eat eat)
{
switch (eat)
{
case Eat.fish:
lvleat += 1;
break;
case Eat.mouse:
lvleat += 2;
break;
case Eat.Sheba:
lvleat += 5;
break;
case Eat.Yad:
lvleat -= 3;
break;
}
}
}
class Program
{
static void Main(string[] args)
{
Cat Murka = new Cat();
Murka.EatSomething(Eat.fish);
Console.WriteLine((int)Murka.LvlEat);
Murka.EatSomething(Eat.mouse);
Console.WriteLine((int)Murka.LvlEat);
Murka.EatSomething(Eat.Yad);
Console.WriteLine((int)Murka.LvlEat);
Murka.EatSomething(Eat.Sheba);
Console.WriteLine((int)Murka.LvlEat);
Console.ReadKey();
}
}

andrew_guchko 21 сен 2014 23:34
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace @enum
{
class Cat
{
internal void eat_something(food_enum ob, byte level)
{
Console.WriteLine("Cat eat {0} and fed on {1} %", ob.ToString(), level);
}
}
enum food_enum : byte
{
fish = 30,
mouse = 50,
whiskas = 80,
pig = 100
}
class Program
{
static void Main(string[] args)
{
Random rnd = new Random();
int rand = rnd.Next(1, 5);
byte level = 0;
food_enum ob = 0;
switch(rand)
{
case 1: ob = food_enum.fish; level = (byte)ob; break;
case 2: ob = food_enum.mouse; level = (byte)ob; break;
case 3: ob = food_enum.pig; level = (byte)ob; break;
case 4: ob = food_enum.whiskas; level = (byte)ob; break;
}
Cat cat = new Cat();
cat.eat_something(ob, level);
Console.ReadLine();
}
}
}

Nikolay 30 июл 2014 11:12
Admin - спасибо учту))

Максим 28 июл 2014 15:02
MrX
---
Спасибо и Вам, очень приятно)

MrX 28 июл 2014 12:00
Спасибо большое автору за курс!
Прошёл за 3 недельки. Узнал много полезного. И домашние задания - это отлично, что они здесь есть.
Поблагодарил автора на гривневый веб-мани кошелек. Мелочь, но надеюсь будет приятно:)

Максим 25 июл 2014 15:08
Nikolay
---
Норм, только уровень сытости нужно прибавлять, а не просто устанавливать. И почему бы строку Console.WriteLine("Cat Level OF Satiety " + levelofsatiety); не вынести за пределы оператора switch, тогда не было бы этого повторения.

Nikolay 24 июл 2014 18:31
а так норм будет?

enum Food { Fish, Chicken, Turkey};
class Cat
{
public int levelofsatiety { get; set;}

public void EatSomethingCat(Food food)
{
switch (food)
{
case Food.Chicken:
levelofsatiety = 12;
Console.WriteLine("Cat Level OF Satiety " + levelofsatiety);
break;
case Food.Fish:
levelofsatiety = 13;
Console.WriteLine("Cat Level OF Satiety " + levelofsatiety);
break;
case Food.Turkey:
levelofsatiety = 11;
Console.WriteLine("Cat Level OF Satiety " + levelofsatiety);
break;

}

}

}

class Program
{
static void Main(string[] args)
{
Food food = Food.Chicken;
Cat cat = new Cat();
cat.EatSomethingCat(food);
Console.ReadKey();
}
}

Максим 18 июл 2014 18:46
AlexSerikov
---
В целом прикольно получилось, но эта часть кода неочень, получается вы два раза проверятете тип еды:
if (cotaite == '1')
{
Eat food = Eat.Beard;
EatSomething(food);
}
else if (cotaite == '2')
{
Eat food = Eat.Mouse;
EatSomething(food);
}
else if (cotaite == '3')
{
Eat food = Eat.Fish;
EatSomething(food);
}

Если конвертировать введенный тип еди в целое число, его можно преобразовать в тип перечисления:

EatSomething((Eat)cotaite);

AlexSerikov 17 июл 2014 15:13
Ну как-то так.Попытался использовать все, что выучил, но лень пересилила, так что использовал не все, но все же что-то есть. И как обычно, Ваше мнение, уважаемый Admin ?

enum Eat { Mouse = 1, Beard = 2, Fish = 3 };

class Cat
{
public void Start()
{
Console.WriteLine("Кормить кота ? y/n");
try
{
char answer = Convert.ToChar(Console.ReadLine());
if (answer == 'y')
{
Console.WriteLine("Что вы коту предложите ? Птичка - '1', Мышка - '2', Рыбка - '3'.");
try
{
char cotaite = Convert.ToChar(Console.ReadLine());
if (cotaite == '1')
{
Eat food = Eat.Beard;
EatSomething(food);
}
else if (cotaite == '2')
{
Eat food = Eat.Mouse;
EatSomething(food);
}
else if (cotaite == '3')
{
Eat food = Eat.Fish;
EatSomething(food);
}

else if (answer == 'n')
{
Console.WriteLine("Проверьте тапки");
Console.ReadKey();
return;
}
else
{
Console.WriteLine("Вы обманули своего любимца");
Start();
}
}
catch (FormatException)
{
Console.WriteLine("Вы обманули своего любимца");
Start();
}
}
}
catch (FormatException)
{
Console.WriteLine("Введите |y| или |n|");
Start();
}
}
public string Name { get; set; }
public int CatCondition { get; protected set; }
public Cat(string Name, int CatCondition)
{
this.Name = Name;
this.CatCondition = CatCondition;
}
public void EatSomething(Eat food)
{
switch (food)
{
case Eat.Mouse: Console.WriteLine("Вы скормили коту Мышь");
CatCondition += (int) Eat.Mouse;
Console.WriteLine("Уровень сытости= "+CatCondition);
break;
case Eat.Beard: Console.WriteLine("Вы скормили коту Птичку");
CatCondition += (int)Eat.Beard;
Console.WriteLine("Уровень сытости= " + CatCondition);
break;
case Eat.Fish: Console.WriteLine("Вы скормили коту Рыбку");
CatCondition += (int)Eat.Fish;
Console.WriteLine("Уровень сытости= " + CatCondition);
break;
}
Console.WriteLine("Кормить еще ?");
try
{
char again = Convert.ToChar(Console.ReadLine());
if (again == 'y')
{
Start();
}
else if (again == 'n')
{
return;
}
else return;
}
catch (FormatException)
{
Console.WriteLine("Введите |y| или |n|");
}
}
}
class Program
{
static void Main()
{
Cat Tom = new Cat("Tom", 1);
Console.WriteLine("У вас есть кот " + Tom.Name + " и он сыт на " + Tom.CatCondition);
Console.WriteLine(" /\\_/\\");
Console.WriteLine("(=*_*=)");
Console.WriteLine("Покорми :3");
Tom.Start();
Console.ReadKey();
}
}

Максим 27 июн 2014 14:53
Амасгор
---
Конкретного числа нет. Много

Амасгор 27 июн 2014 12:58
УВАЖАЕМЫЙ Admin, здравствуйте! А сколько вы всего уроков планируете?

Максим 17 июн 2014 15:06
Serj
---
русский язык в программировании вообще не рекомендуется использовать

Serj 16 июн 2014 21:29
Скажите а перечисления на русском языке это нормально? Всм. можно или не надо?

enum Food {рыбку = 1, мышку = 2, птичку =3 };

class Cat
{
private string name;
private int satiety;

public Cat(string name)
{
this.name = name;
satiety = 10;
}

public void Eat(Food food)
{
satiety += (int)food;
Console.WriteLine(name + " скушал " + food + " теперь его сытость: " + satiety);
Console.ReadKey();
}
}
class Program
{
static void Main(string[] args)
{
Food breakfast = Food.рыбку;
Food lunch = Food.мышку;
Food dinner = Food.птичку;
Cat cat1 = new Cat("Том");
cat1.Eat(breakfast);
cat1.Eat(lunch);
cat1.Eat(dinner);
}
}


Максим 13 июн 2014 14:56
Кос
---
Скоро

Кос 12 июн 2014 20:59
А скоро новое будет?

Юлиан Мамыкин 06 июн 2014 00:06
Огромное вам спасибо, весьма полезный материал. Очень надеюсь что будет продолжение.

Кирилл 02 июн 2014 20:49
public enum Catfood {Meat = 12, Milk = 3, Bird = 8, Mouse = 5, Fish = 10}
public class Cat
{
public int Satiety { get; private set; }
public Cat()
{
Satiety = 0;
}
public void Feed(Catfood FoodType)
{
Satiety += (int)FoodType;
}
public void Walk()
{
Satiety = 0;
}
}


Добавить комментарий:

Имя (обязат.)
E-mail (обязат., не публикуется)


Для вставки ваших программ пользуйтесь кнопкой "исходный код"
Вёрстка сайта с нуля

Уникальный Видеокурс!

"Научись верстать сайты и заработай на этом!"

Получить видеокурс

Подпишись на курс по программированию, и узнавай первым о новых уроках!

RSS подписка Страничка Вконтакте Мы в Twitter

Ошибка в тексте? Выделите ее мышкой и нажмите Ctrl+Enter
Поблагодарить автора: Номер карты (ПриватБанк)
5168 7572 4170 8660
WebMoney
R372544961915 U685637142028 Z999792764387
Наверх
Система Orphus