Diskuze: Komunikace mezi namespacy

C# .NET .NET (C# a Visual Basic) Komunikace mezi namespacy American English version English version

Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Daniel Vítek:

Jak to mám udělat ?
Do using jsem přidal název ale když chci spustit nějakou metodu tak nevím jak...

 
Odpovědět 2.10.2012 20:53
Avatar
Odpovídá na Daniel Vítek
David Jančík [sczdavos]:

Výchozí to je:
Namespace.Class.Method
Když si dáš using tak nemusíš psát ten prefix a stačí tedy jen Třída. Pokud máš více tříd a nechceš je vypisovat tak ten using prodloužíš.
Například using System.Net;, using System.Net.Mail;

Dotaz je moc obecný. Zapracuj na psaní otázek a přikládat nějaký kód ;)

Nahoru Odpovědět 2.10.2012 20:56
Čím více času dostaneš, tím méně ho máš.
Avatar
matesax
Redaktor
Avatar
Odpovídá na Daniel Vítek
matesax:

?? :)

Myslím, že je na místě popsat dobře tvůj problém... Každopádně napadají mě 2 věci, jak jsi to mohl myslet - jak získat seznam metod/tříd/enu­mů/struktur/roz­hraní...? Používáš-li VS, stačí napsat někam do metody daný namespace a hned za něj napsat tečku... Pochopitelně mnohdy bude lepší zajít na oficiální manuál - který je zatraceně dobře vedený. Mnohem nepravděpodobněji mi zní verze č.2 - přidal jsi příslušnou referenci?

Editováno 2.10.2012 20:58
 
Nahoru Odpovědět 2.10.2012 20:57
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na David Jančík [sczdavos]
Daniel Vítek:

Pokouším se zprovoznit toto :
http://programujte.com/…soubory-v-c/

V using mám
using Ini;

a když někam napíšu Ini. (chci napsat něco jako Ini.IniWriteValue) tak mi jde jen Ini.IniFile

 
Nahoru Odpovědět 2.10.2012 21:01
Avatar
Odpovídá na Daniel Vítek
David Jančík [sczdavos]:

Zkoušel jsi vytvořit instanci té třídy?

Nahoru Odpovědět 2.10.2012 21:06
Čím více času dostaneš, tím méně ho máš.
Avatar
matesax
Redaktor
Avatar
Odpovídá na Daniel Vítek
matesax:

INI - zase? Ne - prosím ať je to jen zlý sen... :)

http://www.itnetwork.cz/…-souboru-csv

 
Nahoru Odpovědět  +1 2.10.2012 21:07
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na David Jančík [sczdavos]
Daniel Vítek:

Pokud myslíš

Ini IniSoubor = new Ini();

tak
Error 1 'Ini' is a 'namespace' but is used like a 'type'

 
Nahoru Odpovědět 2.10.2012 21:07
Avatar
Odpovídá na Daniel Vítek
David Jančík [sczdavos]:

Né Namespace, ale třídy. Achj, měl by sis projít základy ;)

Nahoru Odpovědět 2.10.2012 21:08
Čím více času dostaneš, tím méně ho máš.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na matesax
Daniel Vítek:

díky ale ty tvoje TXT soubory neberu,nehodlám vytvářet 4 soubory nebo 5 minut přemýšlet co každý řádek znamená,nehledě na to že by se to pokaždé zapsalo na jiný

 
Nahoru Odpovědět 2.10.2012 21:09
Avatar
matesax
Redaktor
Avatar
Odpovídá na Daniel Vítek
matesax:

Tak udělej databázi - ale INI? (A přečti si nadpis té stránky...)

 
Nahoru Odpovědět 2.10.2012 21:11
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Daniel Vítek
David Čápka:

Pane bože, po sté, použij XML. INI se v .NET a nepoužívá, stejně jako v mainstreamu obecně.

Nahoru Odpovědět 2.10.2012 21:12
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na David Jančík [sczdavos]
Daniel Vítek:

Ajó....tkže

IniFile iniSoubor = new IniFile(@"konfig.ini");

Díky :D

 
Nahoru Odpovědět 2.10.2012 21:13
Avatar
matesax
Redaktor
Avatar
Odpovídá na Daniel Vítek
matesax:

Ne - to rozhodně ne! INI - ne! :)

 
Nahoru Odpovědět 2.10.2012 21:14
Avatar
Odpovídá na Daniel Vítek
David Jančík [sczdavos]:

Naprosto jednoduše.

Ukládání:

public static void saveSettingsFile(string filePath, Dictionary<string, string> dictionary)
{
        using (StreamWriter sw = new StreamWriter(folder + filePath, false))
        {
                foreach (var entry in dictionary)
                {
                        sw.WriteLine(entry.Key + ":=" + entry.Value);
                }
        }
}

Načítání:

public static Dictionary<string, string> loadSettingsFile(string filePath)
{
        Dictionary<string, string> settings = new Dictionary<string, string>();
        try
        {
                using (StreamReader sr = new StreamReader(folder + filePath))
                {
                        string line;
                        string[] splited;
                        while ((line = sr.ReadLine()) != null)
                        {
                                splited = line.Split(new string[] { ":=" }, StringSplitOptions.None);
                                if (splited.Length > 2)
                                        for (int i = 2; i < splited.Length; i++)
                                                splited[1] += ":=" + splited[i];

                                settings.Add(splited[0], splited[1]);
                        }
                }
        }
        catch (Exception)
        {
                Console.WriteLine("load settings ex - file not exists");
        }

        return settings;
}

A k tvému předchozímu příspěvku, abych teda jen nekomandoval. Má to být Namespace.Třída název = new Namespace.Třída();
Vytváříš instanci třídy. Né namespace. Pokud si dáš using Namespace. Tak pak voláš jen Třída.

Tedy

using Ini;

IniFile myFile = new IniFile();
myFile.IniWriteValue();
Editováno 2.10.2012 21:18
Nahoru Odpovědět 2.10.2012 21:15
Čím více času dostaneš, tím méně ho máš.
Avatar
Odpovídá na Daniel Vítek
David Jančík [sczdavos]:

Jó a teď tě tu ještě kazim ukázkou jak jednoduše použít INI soubory, když se má používat XML. Vidíš co děláš?

Nahoru Odpovědět 2.10.2012 21:17
Čím více času dostaneš, tím méně ho máš.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na David Jančík [sczdavos]
Daniel Vítek:

btw. nevíš jak udělat aby se mi to neukládálo do složky C:/Windows ? :D (tam to http://programujte.com/…soubory-v-c/ )

 
Nahoru Odpovědět 2.10.2012 21:26
Avatar
Odpovídá na Daniel Vítek
David Jančík [sczdavos]:

Nepoužívej to jejich. Použij to moje, když už sem ti to poslal ne? :D
Tam si dáš pěkně:

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + Path.DirectorySeparatorChar + "MojeAplikace" + Path.DirectorySeparatorChar;

A pohodička :)

Nahoru Odpovědět 2.10.2012 21:30
Čím více času dostaneš, tím méně ho máš.
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík [sczdavos]
matesax:

Pořád se tu ale bavíme o INI - proč? :)

 
Nahoru Odpovědět 2.10.2012 21:32
Avatar
Kit
Redaktor
Avatar
Odpovídá na Daniel Vítek
Kit:

Takže pokud napíšu

using Ini;
IniFile myFile = new IniFile();

je to stejné jako

Ini.IniFile myFile = new Ini.IniFile();

Pomocí using vlastně jen definuji seznam míst, kde se má hledat třída IniFile. Něco jako PATH. Doufám, že jsem to pochopil správně.

Nahoru Odpovědět  +1 2.10.2012 21:36
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:

Ano, zpřístunuješ tak jednotlivé jmenné prostory, které jsou v sobě zanořené. V případě kolize musíš specifikovat celou cestu nebo vytvořit alias.

Nahoru Odpovědět 2.10.2012 21:55
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
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 20 zpráv z 20.