Объявите класс или структуру внутри метода

В С# возможно ли объявить класс или структуру внутри метода, как в C++?

например C++:

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

Я пытался, но это не позволило мне сделать это.

Ответ 1

Вы можете создать анонимный тип, например, так:

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

И получите (анонимный) тип x с помощью:

x.getClass();

но кроме этого: нет.

Ответ 2

Да, можно объявить class внутри a class, и они называются inner classes

public class Foo
{
    public class Bar
    { 

    }
 }

и как вы можете создать экземпляр

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

И в рамках метода вы можете создать объект anonymous type

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

Ответ 3

Вы можете объявить их внутри класса , поскольку ваш вопрос задается, но не внутри метода, как указано в заголовке вопроса. Что-то вроде:

public class MyClass
{
    public class MyClassAgain
    {
    }

    public struct MyStruct
    {
    }
}