Будет вызываться конструктор по умолчанию из X, если только вы не вызовете другой.
Попробуйте это:
public class X {
public X() {
MessageBox.Show("I'm X");
}
protected X(int dummy){
}
}
public class Y : X {
public Y() : X(0) { //will call other constructor
MessageBox.Show("I'm Y");
}
}
Это просто сделает конструктор по умолчанию не вызываемым. Однако, исходя из вашего вопроса - «что мне нужно, это остановить конструктор X при создании нового Y», я не уверен, что вы понимаете основы наследования объектов ... Если вы не хотите создавать новый X при создании нового Y, зачем вам выводить Y из X? Вы знаете, что наследование - это отношения, верно? В твоем случае Y - это Х ...