2017-07-12 1 views
0

Mon code:Après l'initialisation tableau d'octets dans le constructeur, il est de retour nul dans l'objet

public class UplaodedFile 
{ 
    public UploadedFile File = null; 
    public string Description = null; 
    public string OriginalFileName = null; 
    public byte[] inputStream ; 

    public UplaodedFile(UploadedFile file, string desc, string FileName, byte[] inputStream) 
    { 
     File = file; 
     Description = desc; 
     OriginalFileName = FileName; 
     inputStream = inputStream; 
    } 
} 

Je crée un objet comme ci-dessous:

UplaodedFile uploadedfile = new UplaodedFile(uploaded_file, description, originalFileName, file_contents); 

et lorsque je tente d'accéder au uploadedfile.inputStream , Je deviens nul.

Qu'est-ce que je fais mal?

+0

Renommez votre champ en 'InputStream' ce qui devrait être fait de toute façon parce que c'est public. Mais vous ne devriez pas avoir de champs publics, utilisez plutôt des propriétés. Lisez [pourquoi les propriétés sont importantes] (http://csharpindepth.com/Articles/Chapter8/PropertiesMatter.aspx) –

Répondre

1

Vous faites référence à l'argument du constructeur dans le constructeur

Au lieu de

inputStream = inputStream; 

Vous besoin d'écrire

this.inputStream = inputStream; 
0

En définissant

inputStream = inputStream; 

vous assignez uniquement au paramètre inputStream. En tant que votre champ de classe est également nommé inputStream vous devez dire au compilateur de le mettre à l'aide this:

this.inputStream = inputStream;