Я читаю Эффективный C # (второе издание) , и в нем говорится о встраивании методов .
Я понимаю принцип, но не понимаю Я не вижу, как это будет работать, основываясь на двух примерах из книги. В книге говорится:
Встраивание означает замену тела функции на вызов функции.
Достаточно справедливо, поэтому, если у меня есть метод и его вызов:
public string SayHiTo(string name)
{
return "Hi " + name;
}
public void Welcome()
{
var msg = SayHiTo("Sergi");
}
JIT-компилятор может (будет?) Встроенным это в:
public void Welcome()
{
var msg = "Hi " + "Sergi";
}
Теперь, с этими двумя примерами (дословно из книги):
Пример 1
// readonly name property
public string Name { get; private set; }
// access:
string val = Obj.Name;
Пример 2
string val = "Default Name";
if(Obj != null)
val = Obj.Name;
В книге упоминается код, но не идет дальше того, как они могут быть встроены . Как JIT-компилятор встроит эти 2 примера?