Интересный вопрос. Я не знаю, если в C # вы можете сделать это, но я так не думаю. Что вы можете сделать, это создать статический конструктор, который будет вызываться перед любым другим вызовом в классе:
public class Foo
{
static Foo()
{
Console.WriteLine("called first time only");
}
public Foo()
{
Console.WriteLine("called every new object");
}
}