Partilhar via


Gerar a partir do uso

O recurso Crie Com Base no Uso permite que você use as classes e membros antes de defini-los.Você pode gerar um stub para qualquer classe, construtor, método, propriedade, campo ou enum que você deseja usar, mesmo que ainda não tiver sido definido.Você pode gerar novos tipos e membros sem sair de sua posição atual no código.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 a partir de uso em C#

Uma linha ondulada aparecerá sob cada identificador não definido.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) aparece.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 de uso em Visual Basic

Um sublinhado ondulado aparece sob cada identificador não definido 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:

  • Coloque o ponteiro do mouse sobre o identificador não definido.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 de 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 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.O tipo de retorno da propriedade é determinado a partir do contexto.

Por exemplo, suponha que você gera o InstanceProperty propriedade da instrução no 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 na 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 na Customer classe.

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

Se uma propriedade for chamada sem uma qualificação (referindo-se 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 da ocorrê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 implicitamente digitado 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 do método.

Por exemplo, suponha que você gera o InstanceMethod o método a partir da instrução no 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 for 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 um Instrução RemoveHandler.

Por exemplo, suponha que você gera o EventHandler método a partir 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 do contexto.

Os nomes dos parâmetros do construtor são examinados.Se a classe tem 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 no 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ê gera o construtor, as seguintes variáveis particulares são criadas na Example de classe, se eles já não estiverem presentes.

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

O seguinte fragmento de código do construtor é 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 do 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, as opções sejam exibidas para classe Generate e Gerar novo tipo de.

Se você clicar em classe Generate, 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).Isso é 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ê gera 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 classe Generate 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

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

Por exemplo, suponha que você gera 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 com opções adicionais

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

Visual Basic

Menu de contexto de marca inteligente no 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, um local do projeto e um nome de arquivo.

O Gerar novo tipo de opção proporciona flexibilidade adicional quando você gera uma classe.Você talvez prefira colocar a classe em um arquivo existente, especifique os 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

Caixa de diálogo Novo tipo gerar

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

Opção

Opções para C#

Opções para Visual Basic

Access

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

Padrão, amigo ou público.

Tipo

Classe, struct, interface ou enumeração.

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

Local do projeto

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 do arquivo.

Criar novo arquivo com o nome do arquivo, ou Adicionar ao arquivo existente com o nome do 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 diretiva que se refere a esse projeto é adicionada ao arquivo atual.

Geração de 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ê gera o IAuto interface a partir da instrução no 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ê gera o MathOperator delegar a partir da instrução no 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 fornece 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 as classes e membros são usados antes de serem definidas.

No modo de sugestão de IntelliSense, quando você digita no Editor de código e em seguida, confirma a entrada, o texto digitado é inserido no 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 modos de conclusão e sugestão.

Para obter mais informações, consulte Usando IntelliSense.

Consulte também

Tarefas

Instruções passo a passo: suporte Test-First com o recurso Gerar a partir do Uso

Outros recursos

Escrevendo código no editor de códigos e de texto

Geração automática de códigos