2012-05-23 48 views
7

在C#中,是否有可能在C++中声明一个类或结构内部?在C#中声明一个类或结构内的方法#

例如C++:

void Method() 
{ 
    class NewClass 
    { 
    } newClassObject; 
} 

我试过了,但它不允许我这样做。

+4

你应该被允许在**类**中这样做,但不能在**方法**中。你究竟试过了什么? – mattytommo

+0

你的主题说“内部方法”,但在你的帖子中说“内部课堂”。请编辑一个或另一个,以便您的目标清晰。 – logicnp

+3

标题向问题主体提出了一个不同的问题。差异很重要。请说明你是指“内部方法”(标题)vs“内部类”(主体) –

回答

7

你可以像这样创建一个匿名类型:

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

但比其他:无。

+2

这是一个对象,而不是一个类。 – WojtekT

+5

是和不是。 x是一个变量,但由x.GetClass()返回的(匿名)类型是一个类。 – erikkallen

+0

的确如此。我认为这个问题是关于定义一个类的。 – WojtekT

3

您可以将类中声明为你的问题的状态,但不是方法内部你的问题标题状态。喜欢的东西:

public class MyClass 
{ 
    public class MyClassAgain 
    { 
    } 

    public struct MyStruct 
    { 
    } 
} 
7

是的,这是可能的声明class一个class内,这些被称为inner classes

public class Foo 
{ 
    public class Bar 
    { 

    } 
} 

,这怎么可以创建一个实例

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

而且在方法中您可以创建anonymous类型的对象

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