Chyba kompilátoru CS0120
Odkaz na objekt je vyžadován pro nestatické pole, metodu nebo vlastnost 'member'
Chcete-li použít nestatické pole, metodu nebo vlastnost, musíte nejprve vytvořit instanci objektu. Další informace o statických metodách naleznete v tématu Statické třídy a členy statické třídy. Další informace o vytváření instancí tříd naleznete v tématu Konstruktory instance.
Příklad 1
Následující ukázka vygeneruje CS0120:
// CS0120_1.cs
public class MyClass
{
// Non-static field.
public int i;
// Non-static method.
public void Method() { }
// Non-static property.
public int Prop
{
get
{
return 1;
}
}
public static void Main()
{
i = 10; // CS0120
Method(); // CS0120
int p = Prop; // CS0120
}
}
Chcete-li tuto chybu opravit, nejprve vytvořte instanci třídy:
// CS0120_1.cs
public class MyClass
{
// Non-static field.
public int i;
// Non-static method.
public void Method() { }
// Non-static property.
public int Prop
{
get
{
return 1;
}
}
public static void Main()
{
var mc = new MyClass();
mc.i = 10;
mc.Method();
int p = mc.Prop;
}
}
Příklad 2
CS0120 se také vygeneruje, pokud existuje volání nestatické metody ze statické metody následujícím způsobem:
// CS0120_2.cs
public class MyClass
{
public void Method() { }
public static void Main()
{
Method(); // CS0120
}
}
Chcete-li tuto chybu opravit, nejprve vytvořte instanci třídy:
// CS0120_2.cs
public class MyClass
{
public void Method() { }
public static void Main()
{
var mc = new MyClass();
mc.Method();
}
}
Příklad 3
Podobně statická metoda nemůže volat metodu instance, pokud ji explicitně neudělíte instanci třídy následujícím způsobem:
// CS0120_3.cs
using System;
public class MyClass
{
public static void Main()
{
DoIt("Hello There"); // CS0120
}
private void DoIt(string sText)
{
Console.WriteLine(sText);
}
}
Pokud chcete tuto chybu opravit, můžete do definice metody přidat také statické klíčové slovo:
// CS0120_3.cs
using System;
public class MyClass
{
public static void Main()
{
DoIt("Hello There");
}
private static void DoIt(string sText)
{
Console.WriteLine(sText);
}
}
Viz také
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro