Пока я изучал API .NET Reflection, я натолкнулся на следующий код.Как работает эталонная переменная объекта?
Assembly currentAssem = Assembly.GetExecutingAssembly();
Я понял код, как показано ниже.
Assembly = Class Name
currentAssem = object reference variable
Assembly.GetExecutingAssembly = Static method in Assembly class
Но я думал, ссылку на объект переменной (в стеке) содержит только ссылку на реальный объект (в куче). Я немного смущен, почему есть объектная ссылочная переменная, когда нет созданного объекта. Передает ли ссылочная переменная объекта возвращаемые данные из метода? Или что-то другое?
Когда вы создаете переменную для класса или структуры, всегда ли она является ссылочной переменной объекта? Я имею в виду, что вы можете сделать следующее для назначения 2
в a
.
int a = 2;
Можете ли вы сделать это для класса? Например, если у меня есть имя класса Program
, и я делаю переменную P - могу ли я сделать следующее?
Program P = 2;
Правильно ли я понимаю следующий код?
Program P = new Program();
P = object reference variable
new Program = It makes P point to an object of type Program
На каком языке это? Ява? C#? Это не C. – dbush
«почему существует ссылочная переменная объекта, когда объект не создан», currentAssem на самом деле является экземпляром класса Assembly, поэтому этот объект был создан. –
Вы можете сделать «Program P = 2», если есть неявный оператор преобразования из int в программу –