none
Erro ao passar Page por parâmetro RRS feed

  • Pergunta

  • Boa tarde. 

    Tenho uma aplicação que utiliza tanto VB quanto C# dentro do meu projeto. No caso um website.

    Está aplicação possuí uma classe em VB que recebe a página aspx e executa uma operação.

    Que utilizo ela assim no VB:

    Private myMsg As New alerta(Me.Page)


    Já no C#, tento utilizar ela da seguinte forma:

    private readonly alerta _alerta = new alerta(this.Page);

    Mas ela me retorna o erro: Keyword 'this' is not available in the current context

    E se eu tento passar assim:

    private readonly alerta _alerta = new alerta(Page);

    Ela retorna o seguinte erro: An object reference is required for the non-static field, method, or property

    Segue um trecho da classe em VB:

    Public Class alerta
    
        Private _myPage As Page
        Private _myErro As String
    
        ''' <summary>
        ''' Atribui/Recupera mensagem de Erro
        ''' </summary>    
        ''' <remarks></remarks>
        Public Property myErro() As String
            Get
                Return _myErro
            End Get
            Set(value As String)
                _myErro = value
            End Set
        End Property
    
        
        ''' <summary>
        ''' Cria Classe para manipulação de mensgaens
        ''' </summary>
        ''' <param name="myPage">Rebece Objeto do tipo Page</param>
        ''' <remarks></remarks>
        Public Sub New(ByVal myPage As Page)
            _myPage = myPage
            _myErro = ""
        End Sub

    quarta-feira, 20 de maio de 2015 18:14

Todas as Respostas

  • Anderson, você vai precisar alterar essa declaração desse atributo no C#. Você pode fazer assim:

    // pode fazer assim:
    
    public partial class Pagina : Page
    {
      private alerta _alerta;
      protected void Page_Load(object sender, EventArgs e)
      {
        _alerta = new alerta(Page);
      }
    }
    
    // ou assim:
    
    public partial class Pagina : Page
    {
      private alerta _alerta
      {
        get { return new alerta(Page); }
      }
    }
    
    

    quarta-feira, 20 de maio de 2015 18:38