Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Een objectverwijzing is vereist voor het niet-statische veld, de methode of de eigenschap Lid
Als u een niet-statisch veld, een methode of een eigenschap wilt gebruiken, moet u eerst een objectexemplaren maken. Zie Statische klassen en statische klasseleden voor meer informatie over statische methoden. Zie Exemplaarconstructors voor meer informatie over het maken van exemplaren van klassen.
Voorbeeld 1
In het volgende voorbeeld wordt CS0120 gegenereerd:
// 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
}
}
Als u deze fout wilt corrigeren, maakt u eerst een exemplaar van de klasse:
// 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;
}
}
Voorbeeld 2
CS0120 wordt ook gegenereerd als er een aanroep naar een niet-statische methode van een statische methode is, als volgt:
// CS0120_2.cs
public class MyClass
{
public void Method() { }
public static void Main()
{
Method(); // CS0120
}
}
Als u deze fout wilt corrigeren, maakt u eerst een exemplaar van de klasse:
// CS0120_2.cs
public class MyClass
{
public void Method() { }
public static void Main()
{
var mc = new MyClass();
mc.Method();
}
}
Voorbeeld 3
Op dezelfde manier kan een statische methode geen instantiemethode aanroepen, tenzij u deze expliciet een exemplaar van de klasse geeft, als volgt:
// CS0120_3.cs
using System;
public class MyClass
{
public static void Main()
{
DoIt("Hello There"); // CS0120
}
private void DoIt(string sText)
{
Console.WriteLine(sText);
}
}
Als u deze fout wilt corrigeren, kunt u ook het trefwoord statisch toevoegen aan de methodedefinitie:
// CS0120_3.cs
using System;
public class MyClass
{
public static void Main()
{
DoIt("Hello There");
}
private static void DoIt(string sText)
{
Console.WriteLine(sText);
}
}