La referencia a un miembro no compartido requiere una referencia de objeto.

Ha hecho referencia a un miembro no compartido dentro del código y no ha podido proporcionar una referencia de objeto. No puede usar el nombre de la clase para calificar a un miembro no compartido. La instancia debe estar declarada como una variable de objeto y luego que el nombre de variable haga referencia a esta.

Identificador del error: BC30469

Para corregir este error

  1. Declare la instancia como una variable de objeto.

  2. Haga referencia a la instancia mediante el nombre de variable.

Imports System

Namespace Ecommerce
    Public Class Customer
        Private Property AccountNumber As Integer

        Public Sub New (accountNumber As Integer)
            AccountNumber = accountNumber
        End Sub

        Public Function GetAccountNumber ()
            return AccountNumber + accountNumber
        End Function
    End Class
End Namespace

Module Program
Sub Main(args As String())
        ' Declaring the instance as an object variable:
        Dim firstCustomer As New Ecommerce.Customer(1)
        Dim firstCustomerAccountNumber As Integer

        ' You must not use Ecommerce.Customer.GetAccountNumber() because you
        ' cannot access non-shared Function 'GetAccountNumber' in shared context.
        ' Otherwise, use the instance you've just created to call the function:
        firstCustomerAccountNumber = firstCustomer.GetAccountNumber()
        Console.WriteLine(firstCustomerAccountNumber)
    End Sub
End Module

Consulte también