Wątek przeniesiony 2015-06-01 17:48 z Delphi i Pascal przez somekind.

Błąd "does not contain a static "main" method suitable for an entry point".

0

Jestem początkujący w programowaniu i próbuję nauczyć się języka C#. Chciałem zrobić konsolowy ala kalkulator, ale przy próbie uruchomienia programu Visual Studio pokazuje mi błąd "does not contain a static 'Main' method suitable for an entry point".
Oto kod.

 

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

namespace Chyba_Kalkulator
{
    class Chyba_Kalkulator
    {


            double a;
            double b;
            string działanie;
            double wynik;
        

            public Chyba_Kalkulator()
            { }
        
            double wykonajdz()
            {
                 switch (działanie)
                 {
                   case "+":
                   wynik = a + b;
                   break;

                   case "-":
                   wynik = a - b;
                   break;
                
                   case "*":
                   wynik = a * b;
                   break;

                   case "/":
                   wynik = a / b;
                   break;
                 }
            return wynik;
            }
            public void pokazwynik()
            {
                wynik = wykonajdz();
                Console.Write("wynik działania to");
                Console.WriteLine(wynik);
            }

            public void wczytaj()
            {
                Console.Write("podaj pierwszą liczbę");
                a = Convert.ToDouble(Console.ReadLine());
                Console.WriteLine();

                Console.Write("podaj znak");
                działanie = (Console.ReadLine());
                Console.WriteLine();

                Console.Write("podaj drugą liczbę");
                b = Convert.ToDouble(Console.ReadLine());
                Console.WriteLine();
                Console.ReadKey();
            
            }
        }
}
 

Proszę o pomoc.

0

masz blad
"does not contain a static 'Main' method suitable for an entry point".
teraz uzywamy google tlumacz
"nie zawiera metody statycznej 'main' nadaje się do punktu wejścia".
hmmm NIE ZAWIERA METODY MAIN... NIE WIE GDZIE JEST POCZATEK WEJSCIA hmmm co to moze byc

nie wiem. Ale zgaduje ze brakuje mu metody main.
Taka metode ktora masz w pierwszej stronie kursu

0

Kiedy dodaję public static void Main() i biorę w klamerki kod wyświetla mi się masa innych błędów np. "the name 'b' does not exist in the current context".

0

to wez zacznij czytac ten kurs jeszcze raz bo robisz cos kompletnie zle.
Albo zacznij czytac inny kurs

1

Musisz zrozumieć różnicę między metodami statycznymi, a niestatycznymi. Statyczna metoda jest po prostu funkcją, która siedzi sobie w klasie i dzięki temu ma dostęp do pewnego zakresu widoczności (np widzi zmienne prywatne w danej klasie). Zarówno metody jak i pola statyczne dostępne są z każdego miejsca (no chyba, że jest modyfikator widoczności typu private), bez potrzeby tworzenia obiektu. Metody i pola niestatyczne (bez słówka static) wymagają referencji do obiektu na którym te metody będą wywoływane lub z którego pola będą wyciągane. Jeżeli jesteś w metodzie niestatycznej to masz dostęp do referencji this wskazującej na obiekt na rzecz którego wywołana została metoda. Wszystkie metody niestatyczne niejawnie przyjmują właśnie thisa. Podobnie, jeżeli chcesz się dostać do pola niestatycznego z wnętrza niestatycznej metody to niejawnie wyciągasz pole za pomocą thisa (możesz to zrobić też jawnie, podmieniając zmienna na this.zmienna). Jeśli chcesz wywołać metodę na rzecz innego obiektu niż aktualny (czyli this) to musisz go podać explicite, np obiekt.metoda(parametry).

W twoim przypadku rozwiązaniem będzie stworzenie metody main w której będzie tylko i wyłącznie coś w ten deseń: new Kalkulator().startuj(), gdzie startuj jest niestatyczną metodą.

1

ciezko mi uwierzyc ze istnieje jakikolwiek tutorial do c# (dotyczy tez innych jezykow) ktory nie zaczyna od metody Main.
wez nie przeskakuj tak bardzo do przodu i nie pisz tak duzego programu na poczatek. zacznij od samej metody Main, wypisz cos na ekran i potem dodawaj nowe elementy. i podazaj za kursem a nie piszesz byle co bez zrozumienia i sie dziwisz ze nie dziala :)

0

Dziękuję za udzieloną pomoc. :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1