Когда вы используете new (), вы вызываете конструктор, который соответствует параметрам. Если у вас нет определенных конструкторов, вы получите неявный параметр без конструктора.
Чтобы использовать инициализатор ярлыка, используйте что-то вроде этого.
public class sCls
{
public int A;
public string B;
}
static void Main(string[] args)
{
sCls oCls = new sCls() {A = 4, B = "HI"};
}
Редактировать
Из комментариев, если вы добавляете consturctor, который принимает параметр, вы теряете имплицитный конструктор без параметров
* * 1010
Вы также можете использовать любой конструктор со списком инициализаторов
public class sCls
{
public sCls(string setB)
{
B = setB;
}
public int A;
public string B;
}
static void Main(string[] args)
{
sCls oCls = new sCls("hi") {A = 4, B = "HI"};
}
Помните, что во всех случаях конструктор вызывается перед списком инициализатора, даже если он имеет конструктор без параметров. Таким образом, конструкции базового класса или все, что происходит в конструкции объекта, произойдет первым.
public class BSE
{
public BSE()
{
BaseA = "Bob";
}
public string BaseA;
}
public class sCls :BSE
{
public int A;
public string B;
}
static void Main(string[] args)
{
sCls oCls = new sCls() {A = 4, B = "HI" };
Console.WriteLine("{0}", oCls.BaseA);//Prints Bob
}