Diskuze: Problém s promněnou

C# .NET .NET (C# a Visual Basic) Problém s promněnou American English version English version

Avatar
jakub
Redaktor
Avatar
jakub:

Ahoj,mam problém,když zadam:

string cau = odpovedCau.Text();

hodí mi to error:

Error   9       A field initializer cannot reference the non-static field, method, or property 'ChatingBot.default_Form.odpovedCau'
Odpovědět 16.10.2012 17:47
Uvnitř jsou všichni stejní...
Avatar
matesax
Redaktor
Avatar
Odpovídá na jakub
matesax:
string cau = odpovedCau.Text;
 
Nahoru Odpovědět 16.10.2012 17:52
Avatar
Nahoru Odpovědět 16.10.2012 17:53
Čím více času dostaneš, tím méně ho máš.
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík [sczdavos]
matesax:

Není třeba - leda by mu to moje nešlo - ale spíš půjde... :) (Text je accessor)

 
Nahoru Odpovědět 16.10.2012 18:13
Avatar
Odpovídá na matesax
David Jančík [sczdavos]:

Já měl za to, že v odpovedCau je nějaká instance jeho Třídy. Pokud je to nějaká komponenta, pak je samozřejmě Text vlastnost a né metoda.

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

Vidím to na TextBox - že si tam napíšeš odpověď... (A nepotřebuji kontext... :) )

 
Nahoru Odpovědět 16.10.2012 19:12
Avatar
jakub
Redaktor
Avatar
jakub:

jo,je to textbox

Nahoru Odpovědět 16.10.2012 19:42
Uvnitř jsou všichni stejní...
Avatar
jakub
Redaktor
Avatar
jakub:

pořád nefunguje :(
kód:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ChatingBot
{
    public partial class default_Form : Form
    {
        public default_Form()
        {
            InitializeComponent();
        }

        string cau = odpovedCau.Text;

        private void odkaz_na_kalkulacku_Click(object sender, EventArgs e)
        {

            // vytvor instaci formu
            kalkulacka.kalkulacka druhyForm = new kalkulacka.kalkulacka();
            druhyForm.Show();
        }





    }
}
Nahoru Odpovědět 16.10.2012 19:45
Uvnitř jsou všichni stejní...
Avatar
jakub
Redaktor
Avatar
jakub:

EDIT:// Už sem to rozchodil,obalil sem :

public void odpoved(object sender, EventArgs e)
        {
            string cau = odpovedCau.Text;
        }

funguje,dk za rady

Nahoru Odpovědět 16.10.2012 19:50
Uvnitř jsou všichni stejní...
Avatar
Odpovídá na jakub
David Jančík [sczdavos]:

Dej to do nějaké metody ;) Nebo před to napiš static

Nahoru Odpovědět 16.10.2012 19:51
Čím více času dostaneš, tím méně ho máš.
Avatar
jakub
Redaktor
Avatar
jakub:

ještě dotaz,jak vypíšu do resultu promněnou?

case "cau":
                    result = string.cau ;
                    break;

??
to mi ale nejde.

Nahoru Odpovědět 16.10.2012 20:03
Uvnitř jsou všichni stejní...
Avatar
jakub
Redaktor
Avatar
jakub:

Nebo spíš,jak do case dostanu promněnou?

Nahoru Odpovědět 16.10.2012 20:30
Uvnitř jsou všichni stejní...
Avatar
Odpovídá na jakub
David Jančík [sczdavos]:

Pročti si tutoriály ;) Tohle jsou zbytečné dotazy.

Nahoru Odpovědět 16.10.2012 20:37
Čím více času dostaneš, tím méně ho máš.
Avatar
matesax
Redaktor
Avatar
Odpovídá na jakub
matesax:

Čeština? "_"? Ani jedno do kódu nestrkej... Používej CamelCase.

http://cs.wikipedia.org/wiki/CamelCase

Respektive - názvy proměnných začínají malým, ale další slova v nich velkým. Vlastnosti, třídy,... začínají velkým.

A vůbec k názvům:

odkaz_na_kalkulacku - z toho opravdu netuším, o co GO...

odpovedCau bych viděl na: userResult

K čemu tam je:

using System;
 using System.Collections.Generic;
 using System.ComponentModel;
 using System.Data;
 using System.Drawing;
 using System.Linq;
 using System.Text;
 using System.Windows.Forms;

Stačí:

using System;
using System.Windows.Forms;

Zbytek vůbec nepoužíváš...

 
Nahoru Odpovědět 17.10.2012 6:36
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:

Však nemá češtinu v názvech. Kde jsi to sebral? Podtržítka v názvech být mohou, ale dávám přednost jednoslovním názvům objektů a metod.

Nahoru Odpovědět 17.10.2012 7:05
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Redaktor
Avatar
Odpovídá na Kit
matesax:
string cau = odpovedCau.Text;

         private void odkaz_na_kalkulacku_Click(object sender, EventArgs e)
         {

             // vytvor instaci formu
             kalkulacka.kalkulacka druhyForm = new kalkulacka.kalkulacka();
             druhyForm.Show();

Aha...

No tak já nevím, ale v C# se zásadně používá CamelCase...

Ještě mi řekni, že i toto je OK:

kalkulacka.kalkulacka

...

Editováno 17.10.2012 7:10
 
Nahoru Odpovědět 17.10.2012 7:07
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:

A kde máš tu češtinu? Všechny názvy jsou podle pravidel. I když jsou některé poněkud divné, například "kalkulacka.kal­kulacka".

Nahoru Odpovědět 17.10.2012 7:11
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:

"kalkulacka" není české slovo.

Nahoru Odpovědět 17.10.2012 7:12
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Redaktor
Avatar
Odpovídá na Kit
matesax:

A to je tedy Angičtina? Je to Čeština bez diakritiky... Ano - na malých projektech si to můžeš dovolit, ale je snad lepší naučit se používat Angličtinu již od začátku...

Čechu - Čeština...

Sám jsem od začátku používal Angličtinu - a jak se mi to teď hodí...

Editováno 17.10.2012 7:17
 
Nahoru Odpovědět 17.10.2012 7:14
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:

Není to Angičtina ani Angličtiona. Jsou to nesémantické názvy tříd a metod. Pro pochopení takového programu jsou nutné komentáře a to je špatně.

Nahoru Odpovědět 17.10.2012 7:19
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Redaktor
Avatar
Odpovídá na Kit
matesax:

No já jsem tedy nikdy nepoužíval komenty... Naopak - Angličtina nabízí skvělou terminologii - co v Češtině napíšeš 3 slovy, v Angličtině jedním. Nechápu, že zrovna ty mi tvrdíš, že není lepší používat Angličtinu...

 
Nahoru Odpovědět 17.10.2012 7:23
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:

V tom případě nechápu, proč v programech píšeš víceslovní názvy proměnných a metod, když ti stačí jedno slovo.

Nahoru Odpovědět 17.10.2012 7:29
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:

... a také nechápu, proč používáš Pascal Case, když propaguješ Camel Case...

Nahoru Odpovědět 17.10.2012 7:47
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
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 23 zpráv z 23.