

An object reference is required for the non-static field, method, or property
Ahoj,
když v C# ve Windows Form Application vytvořím funkci a použiju ji, normálně funguje. Když ale úplně stejnou funkci vytvořím v Console Application, Visual Studio mi napíše "Error 1 An object reference is required for the non-static field, method, or property 'ConsoleApplication4.Program.Funkce(int)'". Nevíte, v čem dělám chybu?
Díky za pomoc
Snažíš se volat nestatickou metodu jako statickou. Vytvořil sis před tím instanci příslušné třídy?
Ne, jak se to dělá?
Měl by sis koupit nějakou knížku, postrádáš naprosté základy.
Asi urcite to neni stejna funkce, resp. neni stejne deklarovana. (P.S. alebo ju blbo pouzivas, nevidime na to. Compiler ti predsa zobrazi aj riadok v ktorom to nastalo, a vies ci mas na tom mieste objekt alebo co tam vlastne volas)
"Windows Form Application"..."v Console Application"
tak a teraz poďme všetci hádať akú funkciu si vytvoril a čo presne má robiť..
console application ma staticku classu program. preto aj funkciu vytvor ako static.
Jsem v programování začátečník, takže to budu potřebovat víc polopaticky :).
Chtěl jsem vytvořit konzolovou aplikaci, která přečte číslo, které do ní zapíše uživatel a odpoví (zadané číslo + 1) pomocí funkce. Funkce je to hloupá, ale snažím se začínat od jednoduchých věcí.
Když si vytvořím WindowsForm Aplikaci a napíšu do ní :
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 C_Sharp_WindowsForm_Aplikace
{
public partial class Form1 : Form
{
public int Funkce(int a) //Má funkce
{
a = a + 1;
return a;
}
public Form1()
{
InitializeComponent();
}
private void plusJedna(object sender, EventArgs e) //Aplikace má textbox, do kterého se napíše číslo a pak se v něm zobrazí výsledek
{
txt.Text = (Funkce(int.Parse(txt.Text))).ToString();
}
}
}
Aplikace mi funguje jak má, chci udělat to samé v Konzolové aplikaci, ale když napíšu kód :
using System;
namespace C_Sharp_Konzolová_aplikace
{
class Program
{
public int Funkce(int a)//Stejná funkce
{
a = a + 1;
return a;
}
static void Main(string[] args)
{
Console.WriteLine(Funkce(int.Parse(Console.ReadLin e())));//Která se mi vypíše do konzole
Console.ReadLine();
}
}
}
Vypíše mi Visual Studio chybu. Jak mám tedy napsat kód správně? A prosím o co nejvíc vysvětlivek.
Díky :)
Vysvětlení snad ani není třeba:
static int Funkce(int a)
Zkusil jsem a aplikace funguje.
Díky za pomoc
Měl by ses naučit psát trochu přehlednější kód.