Ответ 1
Вы можете создать анонимный тип, например, так:
var x = new { x = 10, y = 20 };
И получите (анонимный) тип x с помощью:
x.getClass();
но кроме этого: нет.
В С# возможно ли объявить класс или структуру внутри метода, как в C++?
например C++:
void Method()
{
class NewClass
{
} newClassObject;
}
Я пытался, но это не позволило мне сделать это.
Вы можете создать анонимный тип, например, так:
var x = new { x = 10, y = 20 };
И получите (анонимный) тип x с помощью:
x.getClass();
но кроме этого: нет.
Да, можно объявить 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);
}
Вы можете объявить их внутри класса , поскольку ваш вопрос задается, но не внутри метода, как указано в заголовке вопроса. Что-то вроде:
public class MyClass
{
public class MyClassAgain
{
}
public struct MyStruct
{
}
}