Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Ссылка this.

Ключевое слово this ссылается на текущий экземпляр класса, а также используется в качестве модификатора первого параметра метода расширения.

Ниже перечислены наиболее частые способы использования this.

· Для квалификации элементов, скрытых одинаковыми именами, например:

 

public Employee(string name, string alias)

{

// Use this to qualify the fields, name and alias:

this.name = name;

this.alias = alias;

}

 

 

· Для передачи другим методам объекта в качестве параметра, например:

· CalcTax(this);

· Для объявления индексаторов, например:

 

public int this[int param]

{

get { return array[param]; }

set { array[param] = value; }

}

 

 

У статических функций-членов нет указателя this, так как они существуют только на уровне класса и не являются частями объектов. Использование ссылки на this в статическом методе является недопустимым.

Пример

В этом примере this используется для квалификации членов класса Employee, name и alias, которые скрыты одинаковыми именами. Также это ключевое слово используется для передачи объекта в метод CalcTax, который принадлежит к другому классу.

 

class Employee

{

private string name;

private string alias;

private decimal salary = 3000.00m;

 

// Constructor:

public Employee(string name, string alias)

{

// Use this to qualify the fields, name and alias:

this.name = name;

this.alias = alias;

}

// Printing method:

public void printEmployee()

{

Console.WriteLine("Name: {0}\nAlias: {1}", name, alias);

// Passing the object to the CalcTax method by using this:

Console.WriteLine("Taxes: {0:C}", Tax.CalcTax(this));

}

 

public decimal Salary

{

get { return salary; }

}

}

 

class Tax

{

public static decimal CalcTax(Employee E)

{

return 0.08m * E.Salary;

}

}

 

class MainClass

{

static void Main()

{

// Create objects:

Employee E1 = new Employee("Mingda Pan", "mpan");

 

// Display results:

E1.printEmployee();

}

}

/*

Output:

Name: Mingda Pan

Alias: mpan

Taxes: $240.00

*/

 

 





Дата добавления: 2015-02-16; просмотров: 75 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2025 год. (0.032 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав