using System;
using System.Collections.Generic;
using System.Text;
namespace Interfeys
{
class Program
{
class Chusterna
{
public int KillKubometriw;
public double MassaOdnogoKyboMetra=0.8;
public int MasaPystoiShusternu = 5;
public double s_KillKubometriw
{
get { return KillKubometriw; }
set { KillKubometriw = Convert.ToInt32(value); }
}
public Chusterna(int a)
{
s_KillKubometriw = a;
}
public void showing()
{
Console.WriteLine("Масcа Цистерны = {0}", MasaPystoiShusternu + MassaOdnogoKyboMetra * s_KillKubometriw);
}
}
class Obchuslena
{
public static void Main(string[] args)
{
Console.WriteLine("Введить обьем ");
int a = Convert.ToInt32(Console.ReadLine());
Chusterna prl = new Chusterna(a);
prl.showing();
Console.ReadLine();
}
}
}
}
[C#] Индексаторы
Создать класс „Цистерна”, какой задается объемом зберигаемого топлива или массой. Для изменения объема или массы реализовать свойства, которые бы контролировали допустимость нового значения и автоматически вычисляли значение другой величины(например задаем объем топлива – автоматически вычисляется масса цистерны). Максимальный объем топлива – 40 м3, масса пустой цистерны – 5 т, а масса 1 м3 есть 0.8т
Код:
1) зачем делать свойство для открытого поля KillKubometriw ?:) Свойства делаются для закрытых полей и если надо делать проверку на ввод значений
2) если делаешь конструктор с параметрами всегда делай конструктор по умолачанию, это не С++ где он всегда создается неявно
Код:
using System;
using System.Collections.Generic;
using System.Text;
namespace CodeForumCistern
{
class Cistern
{
private double bulk; //Объем
private double mass; //Масса
private double massOfOneCubicMetre = 0.8; // масса 1 км^3
private int massOfEmptyCistern = 5; // масса пустой цистерны
public double Bulk // cвойство для объема
{
get { return bulk; }
set
{
double checkValue = Convert.ToDouble(value);
if (checkValue >= 0 && checkValue <= 40)
{
bulk = checkValue;
mass = bulk * massOfOneCubicMetre;
}
else
{
// кинуть исключение о недопустимости значения или
// подключить еще какой-нибудь обработчик
}
}
}
public double Mass // свойство для массы
{
get { return mass; }
set
{
double checkValue = Convert.ToDouble(value);
if (checkValue >= 0 && checkValue <= 40 * massOfOneCubicMetre)
{
mass = checkValue;
bulk = mass/massOfOneCubicMetre;
}
else
{
// кинуть исключение о недопустимости значения или
// подключить еще какой-нибудь обработчик
}
}
}
public Cistern() {}
public Cistern(double bulk) // конструктор для объема
{
this.Bulk = bulk;
mass = this.bulk * massOfOneCubicMetre;
}
public void Show()
{
Console.WriteLine("Масcа цистерны: {0}т", massOfEmptyCistern +
massOfOneCubicMetre*bulk);
}
}
}
using System.Collections.Generic;
using System.Text;
namespace CodeForumCistern
{
class Cistern
{
private double bulk; //Объем
private double mass; //Масса
private double massOfOneCubicMetre = 0.8; // масса 1 км^3
private int massOfEmptyCistern = 5; // масса пустой цистерны
public double Bulk // cвойство для объема
{
get { return bulk; }
set
{
double checkValue = Convert.ToDouble(value);
if (checkValue >= 0 && checkValue <= 40)
{
bulk = checkValue;
mass = bulk * massOfOneCubicMetre;
}
else
{
// кинуть исключение о недопустимости значения или
// подключить еще какой-нибудь обработчик
}
}
}
public double Mass // свойство для массы
{
get { return mass; }
set
{
double checkValue = Convert.ToDouble(value);
if (checkValue >= 0 && checkValue <= 40 * massOfOneCubicMetre)
{
mass = checkValue;
bulk = mass/massOfOneCubicMetre;
}
else
{
// кинуть исключение о недопустимости значения или
// подключить еще какой-нибудь обработчик
}
}
}
public Cistern() {}
public Cistern(double bulk) // конструктор для объема
{
this.Bulk = bulk;
mass = this.bulk * massOfOneCubicMetre;
}
public void Show()
{
Console.WriteLine("Масcа цистерны: {0}т", massOfEmptyCistern +
massOfOneCubicMetre*bulk);
}
}
}
Код:
using System;
using System.Collections.Generic;
using System.Text;
namespace CodeForumCistern
{
class Program
{
public static void Main(string[] args)
{
Console.Write("Введите объем: ");
double bulk = Convert.ToDouble(Console.ReadLine());
Cistern MyCistern = new Cistern(bulk);
MyCistern.Show();
Console.ReadLine();
}
}
}
using System.Collections.Generic;
using System.Text;
namespace CodeForumCistern
{
class Program
{
public static void Main(string[] args)
{
Console.Write("Введите объем: ");
double bulk = Convert.ToDouble(Console.ReadLine());
Cistern MyCistern = new Cistern(bulk);
MyCistern.Show();
Console.ReadLine();
}
}
}
куда ты собираешься индексатор вставлять ? что ты операцией [] собираешься возвращать ? Индексаторы нужны для пользовательских коллекций и только.