Saya baru di C# dan saya mencoba untuk memecahkan masalah berikut:

Buatlah program yang memiliki minimal 4 metode. Metode pertama harus menampilkan instruksi, metode kedua harus mengambil input pengguna (nama depan dan belakang, nama kursus), metode ketiga harus mengambil input pengguna (3 skor ujian dan mendapatkan rata-ratanya), dan metode terakhir adalah Menampilkan pesan ke pengguna dengan semua informasi pengguna dan hasil yang dihitung kembali. Panggil 4 metode di main.

Saya telah mengedit posting karena saya hanya perlu fokus pada masalah yang saya miliki. Jadi saya punya masalah ketika saya memanggil metode DisplayCalculationAndResult. Apa yang saya lakukan adalah membuat metode untuk mendapatkan input pengguna dan dalam metode lain saya mencetak informasi pengguna tetapi metode untuk hasilnya memerlukan parameter ketika saya menyebutnya benar!? Ok saya tidak melihat mengapa itu menimbulkan masalah namun saya memanggil metode yang berbeda memiliki parameter lain dan berfungsi >< atau itu karena string!?

Inilah yang saya dapatkan

Penggunaan variabel lokal 'firstName' yang tidak ditetapkan

Penggunaan variabel lokal 'lastName' yang tidak ditetapkan

Penggunaan variabel lokal 'courseName' yang belum ditetapkan

Seseorang tolong.

Ini kode saya:

using System;
using System.Security.Cryptography.X509Certificates;

namespace work3
{
    class Work3Calculatore
    {
        static void Main(string[] args)
        {
            
            // Declare Variable
            string firstName, lastName, courseName;
           
            // calculate and Display result
            DisplayCalculationAndResult(firstName, lastName, courseName);
      

            Console.ReadKey();
        }


        public static void AskTheUserForValues()
        {
            //string inputValue; // global variable
            string courseName, firstName, lastName; // needed in this method only
         
            Console.WriteLine(" Please Enter the Your First Name: {0} ");
            firstName = Console.ReadLine();
            //inputValue = Console.ReadLine();
            Console.WriteLine(" Please Enter the Your Last Name: {0}");
            lastName = Console.ReadLine();
            //inputValue = Console.ReadLine();
            Console.WriteLine(" Please Enter the Course Name: {0}");
            courseName = Console.ReadLine();
            //inputValue = Console.ReadLine();
        }


        public static void DisplayCalculationAndResult(string firstName, string lastName, string courseName)
        {
            Console.WriteLine();
            Console.WriteLine(" Your first name is: ");
            Console.WriteLine(" {0:N2 ", firstName);
            Console.WriteLine(" Your last name is: ");
            Console.WriteLine(" {0:N2} ", lastName);
            Console.WriteLine(" Your course is: ");
            Console.WriteLine(" {0:N2}", courseName);
            Console.ReadKey();
        }

    }
}
c#
-1
Skarali 1 Juli 2020, 16:38

1 menjawab

Jawaban Terbaik

Kesalahan:

Dalam metode main Anda, Anda mendeklarasikan tiga variabel, tidak pernah menetapkan apa pun padanya, dan kemudian mencoba menggunakannya:

string firstName, lastName, courseName;
DisplayCalculationAndResult(firstName, lastName, courseName);

Kesalahannya hanya memberi tahu Anda bahwa Anda tidak dapat melakukan itu. Variabel harus diberi nilai (meskipun hanya null) sebelum dapat digunakan. Sebagai contoh:

string firstName = null, lastName = null, courseName = null;
DisplayCalculationAndResult(firstName, lastName, courseName);

Langkah Anda Selanjutnya:

Sepertinya Anda bermaksud mendapatkan nilai tersebut dari metode AskTheUserForValues Anda. Namun, dua masalah menjadi jelas:

  1. Anda tidak pernah menyebut metode itu.
  2. Metode itu tidak mengembalikan apa pun. Itu hanya menetapkan variabel lokalnya sendiri dan kemudian berakhir.

Anda dapat meminta metode itu mengembalikan nilai-nilai itu, kemungkinan dengan membuat kelas untuk menampungnya. Misalkan Anda membuat kelas terpisah sebagai struktur data untuk tiga nilai (saya menebak nama kelas yang bagus, beri nama Anda dengan tepat):

public class Student
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string CourseName { get; set; }
}

Kemudian metode AskTheUserForValues Anda dapat mengembalikan nilai-nilai tersebut sebagai turunan dari kelas tersebut:

public static Student AskTheUserForValues() // set the return type
{
    var result = new Student(); // create an instance of the object

    // populate the fields on that instance
    Console.WriteLine(" Please Enter the Your First Name: {0} ");
    result.FirstName = Console.ReadLine();
    Console.WriteLine(" Please Enter the Your Last Name: {0}");
    result.LastName = Console.ReadLine();
    Console.WriteLine(" Please Enter the Course Name: {0}");
    result.CourseName = Console.ReadLine();

    return result; // return the instance
}

Kemudian metode main Anda bisa mendapatkan hasil dari memanggil metode itu:

static void Main(string[] args)
{
    var values = AskTheUserForValues();

    DisplayCalculationAndResult(values.FirstName, values.LastName, values.CourseName);

    Console.ReadKey();
}

Sebagai latihan tambahan untuk membiasakan diri dengan penggunaan kelas sebagai struktur data sederhana, dari sini coba ubah metode DisplayCalculationAndResult Anda untuk menerima turunan dari kelas baru alih-alih tiga nilai satu per satu.

1
David 1 Juli 2020, 14:57