Il metodo statico non consente mai una chiamata al metodo non statico direttamente.
Motivo: il metodo statico appartiene solo alla sua classe e all'oggetto nay o a qualsiasi istanza.
Così, ogni volta che si tenta di accedere a qualsiasi metodo non statico dal metodo statico all'interno della stessa classe: riceverete:
"È necessario un riferimento a un oggetto per il campo non statico, metodo o proprietà".
Soluzione: Basta dichiarare un riferimento come:
public class <classname>
{
static method()
{
new <classname>.non-static();
}
non-static method()
{
}
}
nuovo Foo(). Dati1(); – abatishchev
Cosa succede se questo metodo si trova all'interno di una pagina asp? Attualmente sto lottando con quello. Uno non crea manualmente un'istanza di una pagina asp. Quindi, come faccio a chiamare un metodo con una pagina asp, da un metodo statico? (WebMethod) –
@ReidGarwin sembra davvero sbagliato mettere il comportamento in qualcosa in una pagina e provare a chiamarlo da un'altra parte. Forse dovrebbe essere refactored di nuovo in un'altra classe e prendere un'istanza di pagina come dipendenza, se necessario. Però, onestamente, questo intero schema urla che c'è qualcosa di sbagliato e vorrei evitarlo anche quando possibile. – tvanfosson