Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Användning av eventuellt otilldelat fält "namn". Struct-instansvariabler tilldelas ursprungligen inte om struct inte har tilldelats.
Struct-medlemmar initieras till sitt standardvärde om du inte uttryckligen initierar dem. Standardvärdet för klasstyper (och andra referenstyper) är null. Om klassen inte initieras innan ett försök att komma åt den genereras en NullReferenceException vid körning. Kompilatorn kan inte definitivt avgöra om klassmedlemmen kommer att initieras eller inte, så CS1060 är en varning och inte ett fel.
Så här åtgärdar du det här felet
- Ange en konstruktor för
structsom initierar alla dess medlemmar.
Exempel
Följande kod genererar CS1060 eftersom klasstypen U är medlem i struct S men aldrig initieras.
// cs1060.cs
namespace CS1060
{
public class U
{
public int i;
}
public struct S
{
public U u;
// Add constructor to correct the error.
//public S(int val)
//{
// u = new U() { i = val };
//}
}
public class Test
{
static void Main()
{
S s;
s.u.i = 5; // CS1060
//Try these lines instead, and uncomment the constructor in S
// S s = new S(0);
// s.u.i = 5;
}
}
}