Похоже, что Sprite не содержит общедоступного конструктора, принимающего нулевые аргументы.
Класс без определенных конструкторов будет иметь конструктор без параметров.
public class MyClass { }
MyClass x= new MyClass(); // this is valid
Однако, если для него определены другие конструкторы, этот конструктор без параметров больше не является «заданным».
Разница между конструктором по умолчанию и параметром без параметровconstructor?
Answer by Nicole Calinoiu
Конструктор "default" добавляется компилятором C #, если ваш класс не содержит явного конструктора экземпляра.Это открытый конструктор без параметров.https://stackoverflow.com/a/10498709/5569485
public class MyClass {
public MyClass(string foo)
{
}
}
MyClass x= new MyClass(); // this is invalid
Класс должен будет вручную определять конструктор без параметров.
public class MyClass {
// parameterless constructor
public MyClass()
{
}
public MyClass(string foo)
{
}
}
MyClass x= new MyClass(); // this is valid again!
Иногда конструкторы не предоставляются публично, и вместо этого класс предоставляет статические методы длясоздать экземпляр объекта.
public class MyClass
{
private MyClass()
{
}
public static MyClass Create()
{
return new MyClass();
}
}
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/private-constructors
Закрытый конструктор - это специальный конструктор экземпляра.Обычно используется в классах, которые содержат только статические члены.Если у класса есть один или несколько закрытых конструкторов и нет открытых конструкторов, другие классы (кроме вложенных классов) не могут создавать экземпляры этого класса.
Не зная больше о классе Sprite
, я полагаю,что есть статический метод для создания экземпляров Sprite
что-то вроде
Sprite sprite = Sprite.Create(...);