Вы могли бы повторить код, но я, как правило, не хочу этого делать.Ваш крайний случай;множество методов, в которых есть только одна строка.Но всякий раз, когда я вижу повторение в коде, это сигнализирует мне, что мне нужно извлечь этот код куда-нибудь еще.Если повторение находится в том же классе, переместите его в свой собственный метод класса.Если повторение происходит в отдельных классах, либо найдите другой класс за пределами двух, где имеет смысл поместить новый метод, либо рассмотрите возможность создания нового класса, который оба класса могут совместно использовать.В вашем случае, если бы я решил переместить код, я бы сделал что-то вроде этого:
private void listBox1_MouseDown(object sender, MouseEventArgs e)
{
HandleMouseDown(listbox1);
}
private void listBox2_DragEnter(object sender, DragEventArgs e)
{
HandleDragEnter( e );
}
private void listBox2_DragDrop(object sender, DragEventArgs e)
{
HandleDragDrop( listBox1, listBox2, e );
}
private void listBox2_MouseDown(object sender, MouseEventArgs e)
{
HandleMouseDown(listBox2);
}
private void listBox1_DragEnter(object sender, DragEventArgs e)
{
HandleDragEnter( e );
}
private void listBox1_DragDrop(object sender, DragEventArgs e)
{
HandleDragDrop( listBox2, listBox1, e );
}
private void HandleMouseDown( ListBox listBox )
{
listBox.DoDragDrop(listBox.SelectedItem.ToString(), DragDropEffects.Move);
}
private void HandleDragEnter( DragEventArgs e )
{
e.Effect = e.AllowedEffect;
}
private void HandleDragDrop( ListBox src, ListBox dst, DragEventArgs e )
{
dst.Items.Add( e.Data.GetData(DataFormats.Text) );
src.Items.Remove( src.SelectedItem.ToString() );
}
Преимущество перемещения кода состоит в том, что если эти методы растут до нескольких строк, вы можете изменить ихтолько в одном месте.Конечно, для однострочного метода я бы также помнил, что позже я всегда могу переместить его в свой собственный метод.Моим личным предпочтением было бы оставить два однострочных метода как есть, выполнить копирование и вставку для второго списка и разделить обработчик DragDrop на его собственный метод, как я делал выше.