Generování před využitím
Funkce generování před využitím umožňuje používání tříd a členů před jejich definování.Můžete vygenerovat prázdnou konstrukci pro všechny třídy, konstruktory, metody, vlastnosti, pole nebo výčty, který chcete použít, ale ještě nebyly definovány.Můžete negenerovat nové typy, aniž by jste museli opustit aktuální místo v kódu.Toto minimalizuje nutnost přerušování vašeho pracovního postupu.
Generování před využitím podporuje programovací styly jako je nejdřív otestuj vývoj.
Pomocí generovat z používání v jazyce C#
Podtržení vlnovkou, které se zobrazí pod každý identifikátor definován.Při umístění ukazatele myši na identifikátor, zobrazí se chybová zpráva v popisku.
Chcete-li zobrazit příslušné možnosti, můžete použít jeden z následujících postupů:
Klepněte na tlačítko nedefinovaný identifikátor.Krátké podtržení se zobrazí pod znakem umístěným nejvíce vlevo.Umístěte ukazatel myši na podtržení krátké a inteligentních značek (ikona).Klepněte na inteligentní značku.
Nedefinovaný identifikátor klepněte a stiskněte kombinaci kláves CTRL +.(tečka).
Nedefinovaný identifikátor tlačítkem a klepněte na tlačítko Generovat.
Možnosti, které patří:
Generovat vlastnosti se zakázaným inzerováním
Generovat pole se zakázaným inzerováním
Generovat metoda se zakázaným inzerováním
Generovat třídy
Generovat nový typ (pro třídu, struktura, rozhraní nebo výčet)
Pomocí generovat z používání jazyka Visual Basic
Podtržení vlnovkou, zobrazí se pod každý identifikátor definován a znaku vpravo podtržen krátké.Při umístění ukazatele myši na identifikátor, zobrazí se chybová zpráva v popisku.
Chcete-li zobrazit příslušné možnosti, můžete použít jeden z následujících postupů:
Umístěte ukazatel myši na nedefinované identifikátor.Zobrazí se inteligentní značka (ikona).Klepněte na inteligentní značku.
Nedefinovaný identifikátor klepněte a stiskněte kombinaci kláves CTRL +.(tečka).
V Seznam chyb okno, poklepejte na odpovídající řádek chyba.
Možnosti, které patří:
Generovat vlastnosti se zakázaným inzerováním
Generovat pole se zakázaným inzerováním
Generovat metoda se zakázaným inzerováním
Generovat třídy
Generovat rozhraní
Generovat nový typ (pro třídu, strukturu, rozhraní, Enum, delegáta nebo modul)
Generování inzerováním vlastnost
Kód odkazuje na nedefinované vlastnosti, klepněte na tlačítko inzerováním generovat vlastnost.Vlastnost inzerováním je generována v příslušné třídě.Návratový typ vlastnosti se určí z kontextu.
Předpokládejme například, že generování InstanceProperty vlastnost z výpisu v následujícím kódu.
Dim cust As New Customer()
Dim city As String = cust.InstanceProperty
Customer cust = new Customer();
string city = cust.InstanceProperty;
Při generování vlastnost následující se zakázaným inzerováním je vytvořena v Customer třídy.
Property InstanceProperty() As String
public string InstanceProperty { get; set; }
Jestliže se vlastnost typu a není instance, bude generované se zakázaným inzerováním statické vlastnosti (C#) nebo sdílené vlastnosti (Visual Basic).
Představte si například generovat vlastnost z následující příkaz (za předpokladu, že Customer je název třídy).
Dim description As String = Customer.SharedProperty
string description = Customer.StaticProperty;
Při generování vlastnost následující se zakázaným inzerováním je vytvořena v Customer třídy.
Shared Property SharedProperty As String
public static string StaticProperty { get; set; }
Jestliže vlastnost bez kvalifikace (odkazující na aktuální typ člena), generované se zakázaným inzerováním je statický, pokud je vlastnost je volána ze statické metody.V opačném případě je vlastnost instance.
Předpokládejme například generovat vlastnost z následující příkaz.
Dim title As String = UnqualifiedProperty
string title = UnqualifiedProperty;
Při generování vlastnost následující se zakázaným inzerováním je vytvořen v aktuální třídy.
Private Property UnqualifiedProperty() As String
public string UnqualifiedProperty { get; set; }
Generování inzerováním metoda
Kód odkazuje na nedefinované metody, klepněte na tlačítko se zakázaným inzerováním metoda generování.Se zakázaným inzerováním metoda je generována v příslušné třídě.
Typ každého parametru a návratový typ Určuje z kontextu.Typ objektu se používá, pokud typ nemůže být inferred, například v anonymní typy nebo implicitně zadali místní proměnné (proměnných definovaných pomocí klíčového slova var).
Každý parametr název je odvozen od jména argumenty, které jsou předány do volání metody.
Předpokládejme například, že generování InstanceMethod metoda z výpisu v následujícím kódu.
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);
Při generování metodou je vytvořena následující se zakázaným inzerováním v příslušné třídě.
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();
}
Pokud metoda je uplatňována na typ a není instancí, generované se zakázaným inzerováním je statické metody (C#) nebo sdílené metody (Visual Basic).
Metoda inzerováním generování události
V jazyce Visual Basic můžete generovat metodu obslužnou rutinu události pro událost, která je popsána v Příkaz AddHandler nebo Prohlášení RemoveHandler.
Předpokládejme například, že generování EventHandler metoda z některého z následujících příkazů v kódu.
AddHandler obj.Ev_Event, AddressOf EventHandler
RemoveHandler obj.Ev_Event, AddressOf EventHandler
Při generování metoda následující se zakázaným inzerováním je vytvořen v aktuální třídy.
Private Sub EventHandler()
Throw New NotImplementedException
End Sub
Generování inzerováním konstruktor
Kód odkazuje na nedefinované konstruktoru, klepněte na tlačítko inzerováním generovat konstruktoru.Se zakázaným inzerováním konstruktoru je generována v příslušné třídě.Typ každého parametru se určí z kontextu.
Názvy parametrů konstruktoru jsou přezkoumány.Pokud třída má vlastnosti, které mají názvy, které odpovídají tyto názvy parametrů, kód je dodávána v konstruktoru uložit argument hodnoty těchto vlastností.
Předpokládejme například, že generování konstruktor pro Example třídy z výpisu v následujícím kódu.
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);
Při generování konstruktor následující soukromé proměnné jsou vytvořeny v Example třídy, pokud již nejsou přítomny.
Private _p1 As Integer
Private _total As Long
Private _p3 As Date
private int p;
private long total;
private DateTime dateTime;
Je vytvořen následující konstruktor se zakázaným inzerováním.
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;
}
Ve třídě lze generovat více než jeden konstruktor.Volání konstruktoru má jiný počet argumentů nebo argument pro různé typy lze generovat další konstruktor.
V jazyce Visual Basic konstruktoru lze také generovat při generování třídy.Další části tohoto tématu Další informace.
Generování třídy
Pokud kód odkazuje na nedefinované třídy nebo jiný typ, se zobrazí volby pro třídy generovat a generovat nový typ.
Pokud klepnete na tlačítko třídy generovat, zakázaným inzerováním prázdné třídy generován nový soubor v projektu.Nový soubor je otevřen v editoru kódu (ale není aktivován).Toto je nejrychlejší způsob, jak vytvořit nový typ třídy s výchozí modifikátory přístupu do nového souboru v projektu.
Předpokládejme například generovat třídy z následující příkaz.
Dim cust As Customer
Customer cust;
Při generování třídy je vytvořena následující nové třídy se zakázaným inzerováním nového souboru v projektu.
Class Customer
End Class
namespace CSharpWindowsApp
{
class Customer
{
}
}
Můžete také použít třídy generovat příkaz při zděděné základní třídy není definována v definici třídy.
Generování spolu s konstruktoru třídy
V jazyce Visual Basic zahrne vygenerované třídy konstruktoru, případně.
Předpokládejme například generovat třídy z následující příkaz.
Dim total = 3
Dim exampleTest As New Example(5, total, Date.Now) With {.Description = "book"}
Při generování třídy je vytvořena následující nové třídy se zakázaným inzerováním nového souboru v projektu.Konstruktor je generováno ve třídě.A Description vlastnost je vytvořen pro inicializátor objektu, který je With klauzule v předchozím kódu.
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
Generování nových typů další možnosti
Pokud kód odkazuje nedefinované třídy, rozhraní, enum, struktura (C#) nebo struktury (Visual Basic), volby se zobrazí pro třídy generovat a generovat nový typ.Je znázorněno na následujícím obrázku.
Visual Basic
Visual C#
Klepněte na tlačítko generovat nový typ otevřete Generovat nový typ dialogové okno, které umožňuje zvolit úroveň přístupu, typ, umístění projektu a název souboru.
Generovat nový typ možnost poskytuje pružnost při generování třídy.Můžete chtít umístit do existujícího souboru třídy nebo zadat modifikátory přístupu nebo přidání nového souboru do jiného projektu v roztoku.
Následující obrázek ukazuje Generovat nový typ dialogové okno.
Nový typ dialogové okno Generovat
Následující tabulka popisuje možnosti dostupné v Generovat nový typ dialogové okno.
Možnost |
Volby pro C# |
Volby pro Visual Basic |
---|---|---|
Access |
Výchozí veřejné, vnitřní nebo soukromé. |
Výchozí přítel nebo veřejnosti. |
Typ |
Třída, struktura, rozhraní nebo enum. |
Třída, struktura, rozhraní, Enum, delegáta nebo modulu |
Project location |
Aktuální projekt nebo jiného projektu v roztoku. |
Aktuální projekt nebo jiného projektu v roztoku. |
Název souboru |
Vytvořit nový soubor s názvem, nebo Přidat do existující soubor s názvem. |
Vytvořit nový soubor s názvem, nebo Přidat do existující soubor s názvem. |
Pokud typ generován nový soubor, nový soubor bude obsahovat výchozí sada using směrnic pro třídu, která je Přidat novou položku dialogové okno.
Pokud je typ generován v jiném projektu v řešení using směrnice, který odkazuje na tento projekt je přidán do aktuálního souboru.
Generování zakázaným inzerováním rozhraní
Chcete-li generovat kód z nedefinovaný rozhraní, klepněte na tlačítko generovat nový typ.Generovat nový typ otevře se dialogové okno.V druhu klepněte na položku rozhraní.V jazyce Visual Basic můžete také klepnout na Generovat rozhraní.
Předpokládejme například, že generování IAuto rozhraní z výpisu v následujícím kódu.
Public Class Sedan : Implements IAuto
End Class
public class Sedan : IAuto
{
}
Při generování rozhraní je vytvořena následující se zakázaným inzerováním.
Interface IAuto
End Interface
interface IAuto
{
}
Generování inzerováním delegáta
Chcete-li generovat kód z nedefinovaný delegát v jazyce Visual Basic, klepněte generovat nový typ.Generovat nový typ otevře se dialogové okno.V druhu klepněte na položku delegáta.
Předpokládejme například, že generování MathOperator delegovat z výpisu v následujícím kódu.
Dim delInstance As New MathOperator(AddressOf AddNumbers)
Při generování delegát je vytvořena následující se zakázaným inzerováním.
Delegate Sub MathOperator()
Režim návrhu technologie IntelliSense
Technologie IntelliSense nabízí dvě možnosti pro dokončení příkazu: dokončení režimu a Návrh režimu.Režim návrhu pro situace, ve kterých jsou použity tříd a členů před jsou definovány.
V režimu návrhu technologie IntelliSense zadáte v editoru kódu a potom potvrzení položky, zadaný text je vložen kód.Při potvrzení položky v režimu dokončení IntelliSense vybranou položku v seznamu členů je vložen do kódu.
V otevřeném okně aplikace technologie IntelliSense, můžete stisknout kombinaci kláves CTRL + ALT + MEZERNÍK přepnout mezi režimem dokončení a návrh.
Další informace naleznete v tématu Pomocí technologie IntelliSense.
Viz také
Úkoly
Názorný postup: Podpora první Test generovat z používání funkce