NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
Poggy
Člen
Avatar
Poggy:29.3.2017 15:11

Ahoj, pokouším se o vytvoření vlastní DLL. Má být jen cvičná, chci si na ní vyzkoušet jak to funguje. Má umět 2 věci. Převod string na INT a ke stringu přidat nový řádek.
vytvořil jsem jí přes Class Library a je definovaná takto:

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

namespace Vylepseni_textovych_poli
{
    public class RozsireniTextovychPoli
    {
        /// <summary>
        /// Převede textovou reprezentaci čísla předané metodě na vstupu na typ INT32 a ten vrátí jako výstup
        /// </summary>
        /// <param name="cisloTextem">číslo pro převod na INT</param>
        /// <returns></returns>
        public int HodnotaInt(string cisloTextem)
        {
            int cislo = Convert.ToInt32(cisloTextem);
            return cislo;
        }
        /// <summary>
        /// K textu automaticky přidá konec rádku
        /// </summary>
        /// <param name="text"></param>
        /// <returns></returns>
        public string PridejRadek(string text)
        {
            return text + Environment.NewLine;
        }
    }
}

Po jejím dopsání jsem dal Build Solution. V pokusném projektu jí chci jen vyzkoušet. Do projektu jsem přes add reference poté přidal tuto DLL a připsal using. Bohužel z nějakého důvodu nevidím z projektu metody a nevím proč.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Vylepseni_textovych_poli;// dopsáno stejně jako namespace DLL

namespace Vylepseni_textovych_poli_z_DLL
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnRovnaSe_Click(object sender, EventArgs e)
        {
            int a = HodnotaInt(txtCislo1.Text);// zde nefunguje
            int b = HodnotaInt(txtCislo2.Text);
            int vysledek = a + b;
            txtVysledek.Text = vysledek.ToString();
        }
    }
}
 
Odpovědět
29.3.2017 15:11
Avatar
Odpovídá na Poggy
Neaktivní uživatel:29.3.2017 15:18

Ty metody (v DLL) jsou přece součástí třídy. Musíš vytvořit instanci třídy RozsireniTexto­vychPoli, a na ní ty metody volat.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
29.3.2017 15:18
Neaktivní uživatelský účet
Avatar
Poggy
Člen
Avatar
Odpovídá na Neaktivní uživatel
Poggy:29.3.2017 15:24

Aha, opraveno. Děkuji.

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnRovnaSe_Click(object sender, EventArgs e)
        {
            RozsireniTextovychPoli nove = new RozsireniTextovychPoli();
            int a = nove.HodnotaInt(txtCislo1.Text);
            int b = nove.HodnotaInt(txtCislo2.Text);
            int vysledek = a + b;
            txtVysledek.Text = vysledek.ToString();
        }
    }
 
Nahoru Odpovědět
29.3.2017 15:24
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.