none
Instanciar objeto RRS feed

  • Pergunta

  • Várias vezes nas funções do meu programa aparece esse erro chato "Object reference not set to an instance of an object."

    Queria saber o que é isso detalhadamente, como evito, etc.

    Deu este erro em:
    If newItemLeft.Count > 0 Then

    E a variável é:
    Dim newItemLeft As Item = c.Inventory.GetItem(ItemLocation.FromSlot(Constants.SlotNumber.Left))

     

    Obrigado.


    Alien Bot Platinum As TibiaBotProject With TibiaAPI.dll
    sábado, 8 de janeiro de 2011 00:19

Respostas

  • Como é seu método construtor da classe Item?

    Só pra teste, tente assim:

    Dim newItemLeft As New Item(c.Inventory.GetItem(ItemLocation.FromSlot(Constants.SlotNumber.Left))
    

    Att. Osni
    terça-feira, 11 de janeiro de 2011 10:25

Todas as Respostas

  • Amigo,

    Este erro ocorre porque vc tenta usar uma classe que nao esta instanciada, ou seja, para evitar o erro acima utilize o codigo abaixo.

    Dim newItemLeft As New Item() ' criou um instancia do objeto Item e atribuiu a variavel newItemLeft 
    newItemLeft = c.Inventory.GetItem(ItemLocation.FromSlot(Constants.SlotNumber.Left))
    


    se a resposta foi útil, classifique :)
    ate mais,

    Rodrigo Soria
    sábado, 8 de janeiro de 2011 02:42
  • Cara eu fiz o que você pediu.

    Eu puis:
      Dim newItemRight As New Item()
      newItemRight = c.Inventory.GetItem(ItemLocation.FromSlot(Constants.SlotNumber.Right))
    

    Mas o primeiro newItemRight ficou sublinhado em azul com o erro: "Overload resolution failed because no accessible "New" accepts this number of arguments"

    E cara outra coisa, meu amigo usa o código igualzinho no que eu postei no tópico e funciona. Todos os que dão erro desse negócio de instanciar aqui da erro e quando ele usa o código igualzinho não dá erro.

    Pra min dar Form2.Show() eu preciso instanciar o form2 e com ele não, ele só poe Form2.Show() e pronto.

    Porque isso acontece?

    sábado, 8 de janeiro de 2011 17:00
  • Tenta assim:

     

    Dim newItemLeft As  Items()
     newItemLeft.add(c.Inventory.GetItem(ItemLocation.FromSlot(Constants.SlotNumber.Left)))
    

     


    Just Be Humble Malange!
    sábado, 8 de janeiro de 2011 18:37
    Moderador
  • Tentei, mas não existe o "add" depois de newItemLeft.

    "E cara outra coisa, meu amigo usa o código igualzinho no que eu postei no tópico e funciona. Todos os que dão erro desse negócio de instanciar aqui da erro e quando ele usa o código igualzinho não dá erro.


    Pra min dar Form2.Show() eu preciso instanciar o form2 e com ele não, ele só poe Form2.Show() e pronto.

    Porque isso acontece?"

    Alien Bot Platinum As TibiaBotProject With TibiaAPI.dll
    sábado, 8 de janeiro de 2011 20:07
  • Como é seu método construtor da classe Item?

    Só pra teste, tente assim:

    Dim newItemLeft As New Item(c.Inventory.GetItem(ItemLocation.FromSlot(Constants.SlotNumber.Left))
    

    Att. Osni
    terça-feira, 11 de janeiro de 2011 10:25
  • Olá Alienbot!

    Para nós do fórum não existe uma resposta concisa quanto ao funcionamento e o não funcionamento do código, pois não podemos comparar o seu código com o código do seu amigo!

    O que posso afirmar é que as classes e métodos do framework tem o mesmo comportamento "a nível de programação".

    Sendo assim se o que funciona p/ ele não funciona para você é porque alguma coisa "ainda" esta diferente. Verifique.

     

    Agora quanto ao sua mensagem de erro, pela breve análise nos exemplos dos amigos acima é bem provável que a resposta do Osni corrija o seu erro.

    Att;


    Eder Costa - LATAM Forum Support Engineer
    Microsoft Corporation
    quinta-feira, 13 de janeiro de 2011 13:29
    Moderador