2013-03-05 8 views
6

Da http://xbox.create.msdn.com/en-US/education/tutorial/2dgame/creating_the_player, si è incaricato che utilizzare questo codice:C# 'get' di accesso non riconosciuto

public int Width() 
    { 
     get { return PlayerTexture.Width; } 
    } 

    public int Height() 
    { 
     get { return PlayerTexture.Height; } 
    } 

Tuttavia, il 'Get' di accesso non sembra essere riconosciuto a tutti. Ottengo i seguenti errori:

  • Il nome 'get' non esiste nel contesto corrente.

  • Solo assegnazione, chiamata, incremento, decremento e nuove espressioni oggetto possono essere utilizzate come una dichiarazione.

Mi manca un 'utilizzo di sistema. (Qualcosa)' linea? Ho visto questo usato con successo innumerevoli volte mentre indagavo sul mio problema ma non riesco a trovare nessuno che abbia incontrato la stessa cosa.

Sto utilizzando XNA Game Studio 4.0 con Microsoft Visual C# 2010 Express. Questo è il mio codice completo per la classe Player.cs:

using System; 
using Microsoft.Xna.Framework; 
using Microsoft.Xna.Framework.Graphics; 

namespace Shooter 
{ 
class Player 
{ 
    private Texture2D PlayerTexture; 
    public Vector2 Position; 
    public bool Active; 
    public int Health; 

    public int Width() 
    { 
     get { return PlayerTexture.Width; } 
    } 

    public int Height() 
    { 
     get { return PlayerTexture.Height; } 
    } 

    public void Initialise(Texture2D texture, Vector2 position) 
    { 
     PlayerTexture = texture; 
     Position = position; 
     Active = true; 
     Health = 100; 
    } 

    public void Update() 
    { 
    } 

    public void Draw(SpriteBatch spriteBatch) 
    { 
     spriteBatch.Draw(PlayerTexture, Position, null, Color.White, 0f, Vector2.Zero, 1f, SpriteEffects.None, 0f); 
    } 
} 
} 

risposta

13

Questa non è una dichiarazione di proprietà valida:

public int Width() 
{ 
    get { return PlayerTexture.Width; } 
} 

La parte () è corretto - che si presenta come si sta cercando di dichiarare un metodo piuttosto che una proprietà. Si dovrebbe avere:

public int Width 
{ 
    get { return PlayerTexture.Width; } 
} 

(. Non ho controllato il resto, ma che potrebbe essere tutto ciò che è sbagliato)

+0

Jon, sono ammirato da quella velocità di risposta! – Sam

+0

Wow, ha funzionato perfettamente. Grazie mille, amico! Accetterà la risposta non appena lo consentirà. – user2134261

+0

Sì, più veloce di quanto potessi digitare il mio, LOL –

0

si dovrà rimuovere il (), il () indica che è un metodo, non una proprietà

Metodo:

public int Width() 
{ 
    return PlayerTexture.Width; 
} 

proprietà:

public int Width 
{ 
    get { return PlayerTexture.Width; } 
} 
Problemi correlati