Как встраивание методов работает для автоматических свойств в C #?

Я читаю Эффективный 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 примера?

7
задан Sergi Papaseit 28 March 2011 в 08:22
поделиться