dodání ihned! nové
Hledáme programátora do rostoucího týmu ITnetwork.cz, 100% home office, 100% flexibilní pracovní doba. Více informací
Black Friday je tu! Využij jedinečnou příležitost a získej až 80 % znalostí navíc zdarma! Více zde
BF
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í
+1 bodů
Řešení problému
Nahoru Odpovědět
29.3.2017 15:18
Neaktivní uživatelský účet
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
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.