F # Назначить значение для члена класса в методе - PullRequest
0 голосов
/ 12 июня 2009

Я играю с F # в VS 2010 и не могу понять, как присвоить значение члену в классе.

type SampleGame = 
    class 
    inherit Game
    override Game.Initialize() = 
        spriteBatch <- new SpriteBatch(this.GraphicsDevice)
        base.Initialize()
    val mutable spriteBatch : SpriteBatch
    end

Я думал, что это правильно, но он говорит, что не может найти "spriteBatch". это правильный способ создания элементов для объектов или есть лучший способ?

Ответы [ 2 ]

3 голосов
/ 12 июня 2009

Вы должны предпочесть этот синтаксис для определения классов

type SampleGame() =     
    inherit Game()    
    let mutable spriteBatch : SpriteBatch = null
    override this.Initialize() =         
        spriteBatch <- new SpriteBatch(this.GraphicsDevice)        
        base.Initialize()    

где вы определяете по крайней мере один конструктор как часть определения класса (parens после первого «SampleGame» в приведенном выше коде), а затем затем используете «let» и «do» для инициализации / определения переменных экземпляра и запуска кода для этого конструктора, а затем, наконец, определить методы / свойства / переопределения / и т.д. (В отличие от вашего синтаксиса, у которого нет имени конструктора после имени типа и используется «val» для переменных экземпляра.)

0 голосов
/ 12 июня 2009

Я думаю, что вы должны объявить свою переменную, прежде чем использовать их.

type SampleGame = 
    class 
    inherit Game

    val mutable spriteBatch : SpriteBatch

    override Game.Initialize() = 
        spriteBatch <- new SpriteBatch(this.GraphicsDevice)
        base.Initialize()
    end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...