Witajcie, mem problem z prostym programem.
Klasa "KlasaMenu" gdzie po wyborze odpowiedniej opcji uruchamia sie odpowiednio albo "KlasaKalkulator.MetodaKalkulator" albo "KlasaBMI.MetodaBMI"
program widzi 2 błędy w miejscu wywołania metod "C# An object reference is required for the non-static field, method, or property" (dla niestatycznego pola, właściwości metody wymagane jest odwołanie do obiektu)
case ConsoleKey.D1:
Console.Clear(); KlasaKalkulator.MetodaKalkulator(); break;
case ConsoleKey.D2:
Console.Clear(); KlasaBMI.MetodaBMI(); break;
Pomożenie w jaki sposób sie odwołać do obiektów zadeklarowanych na samym dole w class Program?
namespace ConsoleApp6
{
public class KlasaMenu
{
public static void StartMenu()
{
Console.Title = "Menu:";
while(true)
{
Console.Clear();
Console.WriteLine(">>> Przykłdowe menu <<<");
Console.WriteLine("1. Program kalkulator");
Console.WriteLine("2. Program Oblicz BMI");
Console.WriteLine("3. Koniec");
ConsoleKeyInfo klawisz = Console.ReadKey();
switch (klawisz.Key)
{
case ConsoleKey.D1:
Console.Clear(); KlasaKalkulator.MetodaKalkulator(); break;
case ConsoleKey.D2:
Console.Clear(); KlasaBMI.MetodaBMI(); break;
case ConsoleKey.Escape:
case ConsoleKey.D3:
Environment.Exit(0); break;
default: break;
}
}
}
}
public class KlasaKalkulator
{
public double Liczba1 { get; set; }
public double Liczba2 { get; set; }
public string Znak { get; set; }
public KlasaKalkulator(int licz1, int licz2, string zna)
{
Liczba1 = licz1;
Liczba2 = licz2;
Znak = zna;
}
public void MetodaKalkulator()
{
double wynik = 0;
if (this.Znak == "+")
wynik = Liczba1 + Liczba2;
else if (this.Znak == "-")
wynik = Liczba1 - Liczba2;
Console.WriteLine("Wynik działania [{0}] na liczbach {1} i {2} to: {3}.", Znak, Liczba1, Liczba2, wynik);
}
}
public class KlasaBMI
{
public double Waga { get; set; }
public double Wzrost { get; set; }
public KlasaBMI(double wag, double wzr)
{
Waga = wag;
Wzrost = wzr;
}
public void MetodaBMI()
{
double wynikbmi = 0;
wynikbmi = (Waga) / (Wzrost * Wzrost);
Console.WriteLine("Twoje BMI to: {0}", wynikbmi);
if (wynikbmi < 18.5)
Console.WriteLine("NIEDOWAGA");
else if (wynikbmi >= 25.0)
Console.WriteLine("NADWAGA");
else
Console.WriteLine("Waga OK");
}
}
class Program
{
static void Main(string[] args)
{
KlasaKalkulator k1 = new KlasaKalkulator(10, 12, "+");
KlasaBMI b1 = new KlasaBMI(70, 1.50);
KlasaMenu.StartMenu();
}
}
}