2012-05-23 6 views
7

In C#, ist es möglich, eine Klasse oder eine Struktur innerhalb einer Methode zu deklarieren, wie in C++?Deklarieren Sie eine Klasse oder Struktur innerhalb einer Methode in C#

z.B. C++:

Ich habe es versucht, aber es erlaubt mir nicht, dies zu tun.

+4

Sie sollten dies in einer ** Klasse ** tun dürfen, aber nicht innerhalb einer ** Methode **. Was genau hast du probiert? – mattytommo

+0

Ihr Thema sagt "Inside-Methode", aber in Ihrem Beitrag sagen Sie "Inside-Klasse". Bitte bearbeiten Sie das eine oder das andere, damit Ihr Ziel klar ist. – logicnp

+3

Der Titel stellt eine andere Frage an den Fragenkörper. Der Unterschied ist wichtig. Bitte klären Sie, ob Sie "innerhalb einer Methode" (Titel) vs "innerhalb einer Klasse" (Körper) bedeuten –

Antwort

7

Sie können einen anonymen Typ wie so erstellen:

var x = new { x = 10, y = 20 } 

aber anders als das: nein.

+2

Dieses ein Objekt, keine Klasse. – WojtekT

+5

Ja und nein. x ist eine Variable, aber der (anonyme) Typ, der von x.GetClass() zurückgegeben wird, ist eine Klasse. – erikkallen

+0

Das stimmt. Ich ging davon aus, dass es bei der Frage darum geht, Klassen zu definieren. – WojtekT

3

Sie können sie in einer Klasse deklarieren als Ihre Frage Staaten, aber nicht in einer Methode als Ihre Frage Titel Staaten. Etwas wie:

public class MyClass 
{ 
    public class MyClassAgain 
    { 
    } 

    public struct MyStruct 
    { 
    } 
} 
7

Ja, ist es möglich, eine class in einem class zu erklären, und diese werden als inner classes

public class Foo 
{ 
    public class Bar 
    { 

    } 
} 

und dies, wie können Sie eine Instanz

Foo foo = new Foo(); 
Foo.Bar bar = new Foo.Bar(); 

erstellen und Innerhalb einer Methode können Sie ein Objekt anonymous Typ

erstellen
void Fn() 
{ 
var anonymous= new { Name="name" , ID=2 }; 
Console.WriteLine(anonymous.Name+" "+anonymous.ID); 
} 
Verwandte Themen