Как добавить get/set accessors?
Создайте консольное приложение C#, которое использует перегруженные методы для вычисления среднего значения из 2, 3 или 4 целых чисел. Сначала создайте класс Average. Напишите метод play в этом классе, чтобы сделать следующее:
(1) Сгенерируйте случайное целое число, чтобы решить, следует ли рассчитывать среднее из 2, 3 или 4 целых чисел. (2) Генерировать 2, 3 или 4 случайных целых числа. Эти случайные целые числа должны быть в диапазоне от 1 до 1000. (3) Вызвать одну из трех версий метода CalcAverage, чтобы вычислить среднее значение случайных целых чисел. (4) Выведите случайные целые числа и их среднее значение в окне консоли.
Класс Average должен иметь три версии метода CalcAverage, принимая в качестве аргументов два, три и четыре целых числа соответственно. Создайте класс AverageTest. В методе Main создайте экземпляр Average и затем вызовите его метод Play.
и что у меня так далеко
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace lab09_ex03
{
public class Average
{
public int play();
{
Random randomNumbers = new Random();
int numIntegers = randomNumbers.Next(2, 5);
Console.WriteLine("For this round the program will display the average of\n {0} randomly generated integers", numIntegers);
if (numIntegers == 2)
{
int integer01 = randomNumbers.Next(1, 1001);
int integer02 = randomNumbers.Next(1, 1001);
return integer01, integer02;
}
if (numIntegers == 3)
{
int integer01 = randomNumbers.Next(1, 1001);
int integer02 = randomNumbers.Next(1, 1001);
int integer03 = randomNumbers.Next(1, 1001);
return integer01, integer02, integer03;
}
else
{
int integer01 = randomNumbers.Next(1, 1001);
int integer02 = randomNumbers.Next(1, 1001);
int integer03 = randomNumbers.Next(1, 1001);
int integer04 = randomNumbers.Next(1, 1001);
return integer01, integer02, integer03, integer04;
}
}
public int CalcAverage(int integer01, int integer02)
{
int average01 = (integer01 + integer02)/2;
Console.WriteLine("The average of {0} and {1} is {2}", integer01, integer02, average01);
}
public int CalcAverage(int integer01, int integer02, int integer03)
{
int average02 = (integer01 + integer02 + integer03)/3;
Console.WriteLine("The average of {0} and {1} and {2} is {3}", integer01, integer02, integer03, average02);
}
public int CalcAverage(int integer01, int integer02, int integer03, int integer04)
{
int average03 = (integer01 + integer02 + integer03 + integer04)/4;
Console.WriteLine("The average of {0} and {1} and {2} and {3} is {4}", integer01, integer02, integer03, integer04, average03);
}
static void Main(string[] args)
{
Play p = new Play();
int integer01;
int integer02;
int integer03;
int integer04;
Console.WriteLine(p.Play());
Console.WriteLine(p.CalcAverage(integer01, integer02));
Console.WriteLine(p.CalcAverage(integer01, integer02, integer03));
Console.WriteLine(p.CalcAverage(integer01, integer02, integer03, integer04));
}
}
}
1 ответ
Прежде всего, play
это метод, поэтому он должен быть public int Play()
, (Если это не то, к чему вы пытаетесь получить доступ с помощью get/set? Если это так, то это совсем не хорошее соглашение.) И я не уверен, что понимаю вопрос, который вы здесь задаете. Если вы хотите, чтобы что-то имело методы get и set, оно выглядит примерно так:
private int myPrivateValue = 0;
public int myPublicValue
{
get
{
return myPrivateValue;
}
set
{
myPrivateValue = value;
}
}
Вы можете прочитать об этом на официальном справочном сайте Microsoft здесь: https://msdn.microsoft.com/en-us/library/aa287786%28v=vs.71%29.aspx
Редактировать: Цель чего-то вроде get / set - когда у вас есть несколько классов для проверки ввода, внесения в журнал изменений и т. Д. У вас есть общедоступное значение, которое как способ для других классов иметь ограниченный доступ в ваши личные поля.