Salut, j'ai écrit une structure imbriquée en C#. Trouver l'extrait de code ci-dessous:Comment affecter la valeur à la structure principale/parent dans une structure imbriquée?
public struct SMB_MESSAGE
{
#region SMB Parameter
public struct SMB_PARAMETERS
{
public byte WordCount;
public ushort[] Words;
}
#endregion
#region SMB Data
public struct SMB_DATA
{
public ushort ByteCount;
public struct Bytes
{
public ushort BufferFormat;
public byte[] Name;
}
}
#endregion
}
maintenant Alors que j'attribue la valeur à la structure intérieure comme ci-dessous:
SMB_MESSAGE SMBMESSAGE;
SMB_MESSAGE.SMB_PARAMETERS SMBPARAMETER;
SMBPARAMETER.WordCount=12;
SMBPARAMETER.Words=null;
SMB_MESSAGE.SMB_DATA SMBDATA;
SMBDATA.ByteCount=byteCount;
SMB_MESSAGE.SMB_DATA.Bytes bytes;
bytes.BufferFormat=bFormat;
bytes.Name=name;
Maintenant, quand je regarde dans la valeur de SMBMESSAGE pendant le débogage, il montre NameSpace.Form1.SMB_MESSAGE
et pas valeurs à l'intérieur. Je ne peux pas également voir un moyen d'attribuer les valeurs à SMBMESSAGE
.
Si nous ne pouvons pas affecter de valeurs, alors pourquoi avons-nous besoin d'utiliser des structures imbriquées?
Votre 'noms de struct' sont horribles. – SLaks
@ SLaks, je voudrais savoir pourquoi? – Simsons
Toutes les majuscules ne doivent jamais être utilisées en C#. Au lieu de cela, vous devriez les nommer quelque chose comme 'Message',' MessageParameter', 'MessageData', et' DataBytes'. – SLaks