Gerar a partir de uso

The Generate From Usage feature enables you to use classes and members before you define them. You can generate a stub for any class, constructor, method, property, field, or enum that you want to use but have not yet defined. You can generate new types and members without leaving your current location in code. Isso minimiza a interrupção de seu fluxo de trabalho.

Gerar de uso oferece suporte a estilos de programação como o primeiro teste de desenvolvimento.

Usando gerar de uso em C#

Uma linha ondulada aparecerá sob cada identificador indefinido. Quando você posiciona o ponteiro do mouse sobre o identificador, uma mensagem de erro é exibida em uma dica de ferramenta.

Para exibir as opções apropriadas, você pode usar um dos seguintes procedimentos:

  • Clique no identificador não definido. Um pequeno sublinhado aparece sob o caractere à esquerda. Posicione o ponteiro do mouse sobre o sublinhado de curto e uma marca inteligente (um ícone) é exibida. Clique na marca inteligente.

  • Clique o identificador não definido e, em seguida, pressione CTRL +. (ponto).

  • O identificador não definido com o botão direito e clique em gerar.

As opções exibidas podem incluir o seguinte:

  • Gerar stub de propriedade

  • Gerar stub do campo

  • Gerar stub do método

  • Gerar classe

  • Gerar um novo tipo de (para uma classe, struct, interface ou enumeração)

Usando gerar a partir do uso de Visual Basic

Um sublinhado ondulado aparece sob cada identificador indefinido e um pequeno sublinhado aparece abaixo do caractere mais à direita. Quando você posiciona o ponteiro do mouse sobre o identificador, uma mensagem de erro é exibida em uma dica de ferramenta.

Para exibir as opções apropriadas, você pode usar um dos seguintes procedimentos:

  • Posicione o ponteiro do mouse no identificador de indefinido. Será exibida uma marca inteligente (um ícone). Clique na marca inteligente.

  • Clique o identificador não definido e, em seguida, pressione CTRL +. (ponto).

  • No Error List janela, clique duas vezes na linha do erro correspondente.

As opções exibidas podem incluir o seguinte:

  • Gerar stub de propriedade

  • Gerar stub do campo

  • Gerar stub do método

  • Gerar classe

  • Gerar a interface

  • Gerar um novo tipo de (para uma classe, estrutura, Interface, Enum, representante ou módulo)

Gerar um Stub de propriedade

Se o código faz referência a uma propriedade indefinida, clique em Gerar stub de propriedade. O stub de propriedade é gerado na classe apropriada. Tipo de retorno da propriedade é determinado a partir do contexto.

Por exemplo, suponha que você gerar o InstanceProperty a propriedade da instrução, o código a seguir.

Dim cust As New Customer()
Dim city As String = cust.InstanceProperty
Customer cust = new Customer();
string city = cust.InstanceProperty;

Quando você gera a propriedade, o fragmento de código a seguir é criado no Customer classe.

Property InstanceProperty() As String
public string InstanceProperty { get; set; }

Se uma propriedade for chamada em um tipo e não uma instância, o fragmento de código gerado será uma propriedade estática (C#) ou uma propriedade compartilhada (Visual Basic).

Por exemplo, imagine que você gera uma propriedade da instrução seguinte (supondo que Customer é um nome de classe).

Dim description As String = Customer.SharedProperty
string description = Customer.StaticProperty;

Quando você gera a propriedade, o fragmento de código a seguir é criado no Customer classe.

Shared Property SharedProperty As String
public static string StaticProperty { get; set; }

Se uma propriedade for chamada sem uma qualificação (se referindo a um membro do tipo atual), o fragmento de código gerado é estático se a propriedade é chamada a partir de um método estático. Caso contrário, ele é uma propriedade de instância.

Por exemplo, suponha que você gera uma propriedade a partir da instrução a seguir.

Dim title As String = UnqualifiedProperty
string title = UnqualifiedProperty;

Quando você gera a propriedade, o fragmento de código a seguir é criado na classe atual.

Private Property UnqualifiedProperty() As String
public string UnqualifiedProperty { get; set; }

Gerar um Stub do método

Se o código faz referência a um método não definido, clique em Gerar stub do método. O stub do método é gerado na classe apropriada.

O tipo de cada parâmetro e o tipo de retorno são determinadas a partir do contexto. O tipo de objeto é usado quando o tipo não pode ser inferidos, como em tipos anônimos ou digitadas implicitamente variáveis locais (variáveis definidas com a palavra-chave var).

O nome de cada parâmetro é derivado dos nomes dos argumentos que são passados para a chamada de método.

Por exemplo, suponha que você gerar o InstanceMethod o método a partir da instrução, o código a seguir.

Dim cust As New Customer()
Dim itemNumber = 3
Dim itemName = "abc"
cust.InstanceMethod(itemNumber, itemName, 4)
Customer cust = new Customer();
int itemNumber = 3;
string itemName = "abc";
cust.InstanceMethod(itemNumber, itemName, 4);

Ao gerar o método, o fragmento de código a seguir é criado na classe apropriada.

Sub InstanceMethod(ByVal itemNumber As Integer, ByVal itemName As String, ByVal p3 As Integer)
    Throw New NotImplementedException
End Sub
internal void InstanceMethod(int itemNumber, string itemName, int p)
{
    throw new NotImplementedException();
}

Se um método é chamado em um tipo e não uma instância, o fragmento de código gerado é um método estático (C#) ou um método compartilhado (Visual Basic).

Gerar um Stub do método para um evento

No Visual Basic, você pode gerar um método do manipulador de eventos para um evento que é referenciado em uma Instrução AddHandler ou Instrução RemoveHandler.

Por exemplo, suponha que você gerar o EventHandler o método de qualquer uma das seguintes instruções no código.

AddHandler obj.Ev_Event, AddressOf EventHandler
RemoveHandler obj.Ev_Event, AddressOf EventHandler

Ao gerar o método, o fragmento de código a seguir é criado na classe atual.

Private Sub EventHandler()
    Throw New NotImplementedException
End Sub

Gerar um Stub do construtor

Se o código faz referência a um construtor indefinido, clique em Gerar stub de construtor. O stub de construtor é gerado na classe apropriada. O tipo de cada parâmetro é determinado a partir do contexto.

Os nomes dos parâmetros do construtor são examinados. Se a classe possui propriedades que possuem nomes que coincidem com os nomes de parâmetro, o código é fornecido no construtor para armazenar os valores de argumento para essas propriedades.

Por exemplo, suponha que você gera um construtor para o Example classe a partir da instrução, o código a seguir.

Dim total As Long = 12
Dim exampleTest As New Example(5, total, Date.Now)
long total = 12;
Example exampleTest = new Example(5, total, System.DateTime.Now);

Quando você gerar construtor, as seguintes variáveis particulares são criadas a Example classe, se eles estiverem ainda não estiver presente.

Private _p1 As Integer
Private _total As Long
Private _p3 As Date
private int p;
private long total;
private DateTime dateTime;

O stub de construtor a seguir é criado.

Sub New(ByVal p1 As Integer, ByVal total As Long, ByVal p3 As Date)
    ' TODO: Complete member initialization 
    _p1 = p1
    _total = total
    _p3 = p3
End Sub
public Example(int p, long total, DateTime dateTime)
{
    // TODO: Complete member initialization
    this.p = p;
    this.total = total;
    this.dateTime = dateTime;
}

Você pode gerar mais de um construtor em uma classe. Um construtor adicional pode ser gerado se a chamada de construtor tem um número diferente de argumentos ou tipos de argumento diferente.

Visual Basic, um construtor também pode ser gerado quando você gera uma classe. Consulte a próxima seção deste tópico para obter mais informações.

Gerando uma classe.

Se o código faz referência a uma classe indefinida ou outro tipo, opções aparecem para a classe de gerar e Gerar novo tipo de.

Se você clicar em a classe de gerar, um stub de classe vazia é gerado em um novo arquivo no projeto. O novo arquivo é aberto no Editor de código (mas não recebe foco). Esta é a maneira mais rápida de criar um novo tipo de classe com modificadores de acesso padrão em um novo arquivo no projeto atual.

Por exemplo, suponha que você gerar uma classe a partir da instrução a seguir.

Dim cust As Customer
Customer cust;

Ao gerar a classe, o stub de classe seguinte novo é criado em um novo arquivo no projeto.

Class Customer

End Class
namespace CSharpWindowsApp
{
    class Customer
    {
    }
}

Você também pode usar o a classe de gerar quando uma classe herdada de base não está definida em uma definição de classe de comando.

Gerando uma classe, juntamente com um construtor

Visual Basic, a classe gerada incluirá um construtor, se apropriado.

Por exemplo, suponha que você gerar uma classe a partir da instrução a seguir.

Dim total = 3
Dim exampleTest As New Example(5, total, Date.Now) With {.Description = "book"}

Ao gerar a classe, o stub de classe seguinte novo é criado em um novo arquivo no projeto. O construtor é gerado na classe. A Description propriedade é criada para o inicializador de objeto que está sendo o With cláusula no código anterior.

Class Example
    Private _p3 As Date
    Private _total As Integer
    Private _p1 As Integer

    Sub New(ByVal p1 As Integer, ByVal total As Integer, ByVal p3 As Date)
        ' TODO: Complete member initialization 
        _p1 = p1
        _total = total
        _p3 = p3
    End Sub

    Property Description As String
End Class

Gerando novos tipos de opções adicionais

Se o código faz referência a uma classe indefinida, a interface, enum, struct (C#) ou estrutura (Visual Basic), opções aparecem para a classe de gerar e Gerar novo tipo de. Isso é mostrado nas ilustrações a seguir.

Visual Basic

Menu de contexto de marca inteligente em Visual Basic

Visual C#

Menu de contexto de marca inteligente em C#

Clique em Gerar novo tipo de para abrir o Gerar novo tipo de caixa de diálogo que permite que você escolha um nível de acesso, um tipo, local do projeto e um nome de arquivo.

O Gerar novo tipo de opção proporciona flexibilidade adicional quando você gera uma classe. Você pode preferir colocar a classe em um arquivo existente, ou especificar modificadores de acesso ou adicionar o novo arquivo para outro projeto na solução.

A ilustração a seguir mostra a Gerar novo tipo de caixa de diálogo.

Gerar caixa de diálogo Novo tipo

Gerar um NovoTipo<>caixa de dialog\ de>

A tabela a seguir mostra as opções disponíveis na Gerar novo tipo de caixa de diálogo.

Option

Opções para C#

Opções para Visual Basic

Access

Padrão, pública, interna ou privada.

Padrão, amigo ou público.

Tipo

Classe, struct, interface ou enumeração.

Classe, estrutura, Interface, Enum, representante ou módulo.

Project location

Projeto atual ou em outro projeto na solução.

Projeto atual ou em outro projeto na solução.

File name

Criar novo arquivo com o nome do arquivo, ou Adicionar ao arquivo existente com o nome de arquivo.

Criar novo arquivo com o nome do arquivo, ou Adicionar ao arquivo existente com o nome de arquivo.

Se o tipo é gerado em um novo arquivo, o novo arquivo irá conter o conjunto padrão de using diretivas para uma classe que é gerado pelo Add New Item caixa de diálogo.

Se o tipo é gerado em outro projeto na solução, uma using diretriz que se refere ao projeto é adicionado ao arquivo atual.

Gerar um Stub de Interface

Para gerar o código de uma interface indefinida, clique em Gerar novo tipo de. O Gerar novo tipo de abre a caixa de diálogo. No tipo , clique em interface. No Visual Basic, você também pode clicar em Interface gerar.

Por exemplo, suponha que você gerar o IAuto interface a partir da instrução, o código a seguir.

Public Class Sedan : Implements IAuto
End Class
public class Sedan : IAuto
{
}

Ao gerar a interface, o fragmento de código a seguir é criado.

Interface IAuto

End Interface
interface IAuto
{
}

Gerar um Stub de delegado

Para gerar o código de um delegado indefinido no Visual Basic, clique em Gerar novo tipo de. O Gerar novo tipo de abre a caixa de diálogo. No tipo , clique em delegado.

Por exemplo, suponha que você gerar o MathOperator delegar a partir da instrução, o código a seguir.

Dim delInstance As New MathOperator(AddressOf AddNumbers)

Quando você gera o delegado, o fragmento de código a seguir é criado.

Delegate Sub MathOperator()

Modo de sugestão de IntelliSense

IntelliSense oferece duas alternativas para a conclusão da instrução: conclusão modo e sugestão modo. Use o modo de sugestão para situações em que classes e membros são usados antes de serem definidas.

No modo de sugestão de IntelliSense, quando você digita o Editor de código e em seguida, confirma a entrada, o texto digitado é inserido o código. Quando você confirmar uma entrada no modo de conclusão de IntelliSense, a entrada selecionada na lista de membros é inserida no código.

Quando uma janela de IntelliSense é aberta, você pode pressionar CTRL + ALT + barra de espaços para alternar entre o modo de conclusão e sugestão.

For more information, see Listar Membros.

Consulte também

Tarefas

Demonstra Passo a passo: Primeiro teste de suporte com a gerar a partir do recurso de uso

Outros recursos

Auxílios de codificação

Geração automática de código