• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Odwołanie do metody w innym pliku

Object Storage Arubacloud
0 głosów
301 wizyt
pytanie zadane 6 kwietnia 2021 w C# przez rotonhageton Nowicjusz (120 p.)

Witam.

Potrzebuję odwołać się do metody Clear() z pliku EasyConnect do pliku EasyConnectTestyJednostkowe, ale jest "nazwa Clear nie istnieje w bieżącym kontekście".

Próbowałem już chyba wszystkiego i nie działa. Jakieś porady jak to rozwiązać?

using EasyConnect.easyconnectClasses;
using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Windows.Forms;


namespace EasyConnect
{
    /// <summary>
    /// Główna klasa EasyConnect, która zawiera wszystkie metody.
    /// </summary>
   
    public partial class EasyConnect : Form
    {
        public EasyConnect()
        {
            InitializeComponent();
        }
        ConnectClass c = new ConnectClass();
        private void EasyConnect_Load(object sender, EventArgs e)
        {
            DataTable dt = c.Select();
            dataGridViewContactList.DataSource = dt;
        }
        
        /// <summary>
        /// Metoda, która dodaje funkcje dodawania osoby do bazy danych przy pomocy przycisku "Dodaj".
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void buttonAdd_Click(object sender, EventArgs e)
        {

            //Pobierz wartość z pola wejściowego
            c.FirstName = textBoxFirstName.Text;
            c.LastName = textBoxLastName.Text;
            c.ContactNo = textBoxContactNumber.Text;
            c.Address = textBoxAddress.Text;
            c.Gender = comboBoxGender.Text;

            if (textBoxContactNumber.Text.Length == 9)
            {
                bool success = c.Insert(c);
                if (success == true)
                {
                    MessageBox.Show("Nowy kontakt został pomyślnie wprowadzony.");
                    Clear();
                }
                else
                {
                    MessageBox.Show("Błąd w dodawaniu nowego kontaktu. Spróbuj ponownie.");
                }
            }
            else
            {
                MessageBox.Show("Numer jest za krótki lub za długi.");
            }
            DataTable dt = c.Select();
            dataGridViewContactList.DataSource = dt;

        }

        /// <summary>
        /// Metoda, która zamyka program poprzez przyciśnięcie przycisku "X".
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void pictureBox1_Click(object sender, EventArgs e)
        {
            this.Close();
        }
        /// <summary>
        /// Metoda do czyszczenia danych po lewej stronie.
        /// </summary>
       
        public void Clear()
        {
            textBoxContactID.Text = "";
            textBoxFirstName.Text = "";
            textBoxLastName.Text = "";
            textBoxContactNumber.Text = "";
            textBoxAddress.Text = "";
            comboBoxGender.Text = "";
        }

 

using Microsoft.VisualStudio.TestTools.UnitTesting;
using EasyConnect;
using EasyConnectTestyJednostkowe;
using System;

namespace EasyConnectTestyJednostkowe
{
    [TestClass]
    public class EasyConnectTestyJednostkowe
    {
        [TestMethod]
        public void TestCzyszczeniaPol()
        {
           
            string Id = "1";
            string Imie = "Arek";
            string Nazwisko = "Kowalski";
            string NumerTelefonu = "694467282";
            string Adres = "Polska 334";
            string Plec = "Male";
            string CzystePole = "";

            

            Clear();

          

    }
}

 

1 odpowiedź

0 głosów
odpowiedź 6 kwietnia 2021 przez Siemił Mądrala (7,380 p.)

Pewnie że nie istnieje bo klasa EasyConnectTestyJednostkowe nie ma metody Clear. Zastanów się skąd kompilator ma wiedzieć co to jest Clear()? Powinieneś najpierw stworzyć obiekt a następnie zadeklarować na jego rzecz wykonanie metody Clear():

    [TestClass]
    public class EasyConnectTestyJednostkowe
    {
        [TestMethod]
        public void TestCzyszczeniaPol()
        {
            
            string Id = "1";
            string Imie = "Arek";
            string Nazwisko = "Kowalski";
            string NumerTelefonu = "694467282";
            string Adres = "Polska 334";
            string Plec = "Male";
            string CzystePole = "";
 
             
 
            //Clear();
            EasyConnect easyConnect = new EasyConnect();
            easyConnect .Clear();
           
 
    }

 

komentarz 6 kwietnia 2021 przez rotonhageton Nowicjusz (120 p.)
Teraz dostaje taki błąd:

"Element „EasyConnect” to element przestrzeń nazw, ale jest używany jak element typ"
komentarz 6 kwietnia 2021 przez Siemił Mądrala (7,380 p.)
Problem jest w tym że twój namespace ma identyczną nazwę jak twoja klasa "EasyConnect". Możesz to rozwiązać zmieniająć namespace albo zmieniając nazwę klasy. Ale najszybszy sposób to chyba będzie zmiana tej liniki na "var easyConnect = new EasyConnect.EasyConnect();". Jawnie tutaj pokazujesz kompilatorowi, że chodzi ci o klasę EasyConnect która należy do namespace EasyConnect . Mam nadzieje że nie za bardzo ci pogmatwałem:).
komentarz 6 kwietnia 2021 przez rotonhageton Nowicjusz (120 p.)
Jakimś cudem znalazłem rozwiązanie na internecie i zrobiłem dokładnie tak jak napisałeś także wszystko jest zrozumiałem. Mam tylko jeszcze jeden problem. Jakim assertem mam sprawdzić czy metoda rzeczywiście czyści cokolwiek? Jak daje Assert.AreEqual(CzystePole, Id); to jest, że nie czyści :/
komentarz 7 kwietnia 2021 przez Siemił Mądrala (7,380 p.)
Byś musiał znowu kod pokazać.

Podobne pytania

0 głosów
1 odpowiedź 616 wizyt
pytanie zadane 3 lutego 2019 w C# przez TheFunny Gaduła (3,420 p.)
0 głosów
2 odpowiedzi 158 wizyt
0 głosów
0 odpowiedzi 1,045 wizyt
pytanie zadane 31 lipca 2016 w C i C++ przez Pac Plus Mądrala (5,560 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...