- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
private void tlistObject_SelectedIndexChanged(object sender, EventArgs e)
{
IMapObject oTarget = this.tlistObjects.SelectedItem as IMapObject;
if (oTarget != null)
{
if (this.SelectedObject != null)
{
this.SelectedObject.ObjectMode = ObjectModeElements.None;
}
this.SelectedObject = this.tlistObjects.SelectedItem as IMapObject;
this.SelectedObject.ObjectMode = ObjectModeElements.Selected;
}
}
guest 10.02.2012 14:10 # −2
ICELedyanoj 10.02.2012 14:13 # −3
Ну и плюс thisы.
Да, и имена переменных. oTarget, oItem, iResult... - тоже часть авторского стиля.
abatishchev 10.02.2012 15:04 # 0
Это расово-верный, единственно-правильный безопасный способ приведения object к типу.
ICELedyanoj 10.02.2012 15:14 # 0
Достаточно один раз привести объект через AS, присвоить результат в oTarget, проверить результат на Null и после этого SelectedObject = oTarget. Два раза-то приводить зачем? На всякий случай?
abatishchev 10.02.2012 15:42 # −1
второй as не заметил
ICELedyanoj 10.02.2012 15:46 # −3
С ними код не читается.
absolut 10.02.2012 18:05 # 0
This все из-за это.
bugmenot 10.02.2012 18:31 # +1
ICELedyanoj 10.02.2012 15:22 # 0
Двойное приведение через As приводит к двойной операции упаковки, что мало-мало добавляет работы мусорщику.
roman-kashitsyn 10.02.2012 14:15 # +2
ICELedyanoj 10.02.2012 14:26 # 0
VS
oMapData.Add(_tempObject.id, new DirectionPointData(_tempObject.id, _tempObject, null, oRowView["pr211"].ToString(), oRowView["pr212"].ToString(), oRowView["pr222"].ToString(), oRowView["pr231"].ToString(), _currentColor, oImageTmp, null));
-------------------
this._currentColor = this.YellowColor;
--------------------
this.map.AddRoute(this._currentRoute, oDir, this._proxy, new DirectionPointTooltipSettings(iMode, this._monitoringFormSettings.RoutesShowP ointNumber, this._monitoringFormSettings.RoutesShowA ctualTime, this._monitoringFormSettings.RoutesShowE stimateTime, this._monitoringFormSettings.RoutesShowP ointStatus, true, this._monitoringFormSettings.RoutesShowP rocessingTime, true));
Даже не знаю как ответить.
abatishchev 10.02.2012 15:05 # 0
все instance-свойства вызывать через this.PropertyName
ICELedyanoj 13.02.2012 00:49 # 0
В нашей компании никто таким не страдает (уже). Первого и последнего страдальца выперли, а нам теперь после него кучу кода переделывать. This и двойное приведение - только цветочки.
ICELedyanoj 10.02.2012 14:28 # −4
roman-kashitsyn 10.02.2012 14:36 # 0
ICELedyanoj 10.02.2012 14:41 # 0
1. Для квалификации элементов, скрытых одинаковыми именами.
2. Для передачи другим методам объекта в качестве параметра, например:
CalcTax(this);
3. Для объявления индексаторов.
Если вы не видите ничего плохого в распухании кода за счет ненужных ключевых слов, то даже не буду пытаться еще раз.
shmaltorhbooks 10.02.2012 16:09 # +1
ICELedyanoj 10.02.2012 16:42 # 0
class MyForm : Form
{
public MyForm()
{
InitializeComponent();
.....
Какой-то код
.....
this.InitializeComponent();
}
}
Теперь скажите, что принудительное использование this делает код более читаемым.
Такое использование this не запрещается, но нигде в том же MSDN я не видел кода с обращением к каждому полю через this.
roman-kashitsyn 10.02.2012 16:11 # 0
Основная причина распухания кода - неумение его организовать, а уж никак не использование this.
absolut 10.02.2012 16:18 # 0
ICELedyanoj 10.02.2012 16:44 # 0
roman-kashitsyn 10.02.2012 16:49 # 0
3.14159265 10.02.2012 21:01 # 0
fixed
absolut 10.02.2012 14:36 # +1
ICELedyanoj 10.02.2012 14:50 # 0
А два - правильное именование переменных класса легко сводит количество таких случаев к нулю.
absolut 10.02.2012 14:53 # 0
ICELedyanoj 10.02.2012 15:00 # 0
В нашем коде все приватные поля и свойства класса именуются по типу "_name", пабликовые - "Name", входящие аргументы - "name". Поэтому:
1. При взгляде на имя всегда понятно чье это (и this не нужен для этого, аргумент от поля легко отличить).
2. Имена аргументов и переменных класса никогда не совпадают, будучи при этом одинаковыми (как ни парадоксально).
Em1ss1oN 10.02.2012 16:54 # 0
ICELedyanoj 13.02.2012 00:47 # 0
Где вы увидели попытки слива? В согласии с мыслью о необходимости одинаковых имен аргументов и полей? Тогда прошу перечитать мой комментарий ещё раз.
Если я так уж неправ, то прошу вас аргументировать свою любовь к избыточному коду.
roman-kashitsyn 10.02.2012 14:22 # +1
nolka4 11.02.2012 13:48 # −1