Ключевое слово this
this передают в другие методы, возвращают
из цепочных вызовов или используют, когда
имя параметра совпадает с полем. В struct
this можно применять только в методах
экземпляра, не в статических. Для обращения
к базе служит base.
Синтаксис
this.поле = значение;
return this;
Пример
Давайте различим поле и параметр через this:
using System;
class Cell
{
private string code;
public Cell(string code)
{
this.code = code;
}
public string GetCode()
{
return this.code;
}
}
class Program
{
static void Main()
{
var item = new Cell("abcde");
Console.WriteLine(item.GetCode());
}
}
Результат выполнения кода:
"abcde"
Пример
Давайте вернём this для цепочки вызовов:
using System;
class Builder
{
private string text = "";
public Builder Append(string part)
{
text += part;
return this;
}
public string Build()
{
return text;
}
}
class Program
{
static void Main()
{
var res = new Builder()
.Append("123")
.Append("45")
.Build();
Console.WriteLine(res);
}
}
Результат выполнения кода:
"12345"
Пример
Давайте передать текущий объект в метод:
using System;
class Node
{
public string Tag = "a";
public void PrintPair(Node other)
{
Console.WriteLine(this.Tag + other.Tag);
}
}
class Program
{
static void Main()
{
var left = new Node { Tag = "1" };
var right = new Node { Tag = "2" };
left.PrintPair(right);
}
}
Результат выполнения кода:
12