В c# почти все является объектом, давайте возьмем ваш код, например:
public class StatMetaData
{
public string key { get; set; }
public string name { get; set; }
public string categoryKey { get; set; }
public string categoryName { get; set; }
public bool isReversed { get; set; }
}
все элементы ниже верно:
object c = new StatMetaData(); //thus the instance of the class is an object
object k = new StatMetaData().Key; //an instance of string is also an object
object b = new StatMetaData().isReversed; //an instance of bool is also an object
Проще говоря (и это выходит за рамки этого простого утверждения), скажем, объект - basically anything that you store in memory
. Когда вы объявляете класс типа StatMetaData
, у вас нет объекта, потому что нет экземпляра, вы просто объявляете Type
... только когда вы создаете новый экземпляр StatMetaData
, у вас есть объект в память.
Также обратите внимание, что, например, object myObj;
не является объектом в памяти, пока у вас не будет что-то вроде object myObj = new object();
, тип объекта также является типом.