не могу понять почему дебаггер не заходит в static constructor с помошью step into, есдинственный вариант заставить туда его зайти это поставить туда break point, тогда заходит поочереди сначало SClass(), потом getA() и наконец getB(). Может как-нибудь можно заставить дебаггер проходить полностью класс без дополнитьльных break points ?
public static class SClass
{
static SClass()
{
a = getA();
}
static int a;
static int getA()
{
return 10;
}
public static int getB()
{
return a + 10;
}
}
class Program
{
static void Main()
{
SClass.getB();
}
}
Здравствуйте, sil_, Вы писали:
_>не могу понять почему дебаггер не заходит в static constructor с помошью step into, есдинственный вариант заставить туда его зайти это поставить туда break point, тогда заходит поочереди сначало SClass(), потом getA() и наконец getB(). Может как-нибудь можно заставить дебаггер проходить полностью класс без дополнитьльных break points ?
статический конструктор будет вызван перед вызовом функции Main, а step into только с нее начинает свое выполнение.
перенесите первое упоминание класса SClass в метод и вызывайте его
class Program
{
static void Main()
{
Run();
}
static void Run()
{
SClass.getB();
}
}
step into called function...
но вам может помочь установка в .cctor
System.Diagnostics.Debugger.Break();
Данное сообщение получено с сайта www.gotdotnet.ru
Здравствуйте, sil_, Вы писали:
_>не могу понять почему дебаггер не заходит в static constructor с помошью step into, есдинственный вариант заставить туда его зайти это поставить туда break point, тогда заходит поочереди сначало SClass(), потом getA() и наконец getB().
А откуда ты пытаешься это сделать?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Здравствуйте, Ovl, Вы писали:
Ovl>статический конструктор будет вызван перед вызовом функции Main, а step into только с нее начинает свое выполнение.
статический конструктор класса будет вызван перед main Если только класс содержит main() метод внутри себя
вот еще пример
class Test
{
static Test()
{
Console.WriteLine("Test class with main() static constructor ");
}
static void Main()
{
Console.WriteLine("inside main()");
A.F();
}
}
class A
{
static A()
{
Console.WriteLine("static constructor");
}
public static void F()
{
Console.WriteLine("static metod");
}
}
output:
Test class with main() static constructor
inside main()
static constructor
static metod
то что step into не заходит в static Test() это вы написали верно, но почему тогда step into не заходит в static A() ??