-
+116
- 1
- 2
- 3
- 4
- 5
- 6
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
label5.Text = Convert.ToInt32(e.X.ToString()).ToString();
label6.Text = Convert.ToInt32(e.Y.ToString()).ToString();
label1.Location = new Point(e.X, e.Y);
}
Не знаю лаба это или нет, но взято это с www.cyberforum.ru
psina-from-ua,
07 Января 2011
-
+126
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
if (_documentsCount < 0)
{
var docs = new HashSet<int>();
_manager.WalkThroughConcepts(delegate(Concept concept, CancelEventArgs cargs)
{
foreach (var doc in concept.Documents)
docs.Add(doc);
});
_documentsCount = docs.Count;
}
return _documentsCount;
Как сосчитать количество документов в дереве? очень просто - надо всех их добавить в один список (и для этого сделать цикл в каждом узле, разумеется) а потом вернуть количество элементов в списке.
eval_2009,
06 Января 2011
-
+116
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
public delegate IEnumerable<int> ProcessStrategy();
public class ProcessEventArgs: EventArgs
{
public ProcessStrategy { get; set; }
}
public IEnumerable<int> GetSelectedDocuments()
{
var args = new ProcessEventArgs();
if (args.Strategy == null)
{
args.Strategy = delegate()
{
var result = new HashSet<int>();
WalkThrough(
delegate(ConceptInfo concept, CancelEventArgs cargs)
{
foreach (var doc in concept.Documents)
result.Add(doc);
}, State.Selected);
return result;
};
}
return args.Strategy();
}
Обьявляем делегат, потом обьявляем класс от EventArgs в котором (в EventArgs!) будет передаваться этот самый делегат.
Потом в нужном методе создаем экземпляр класса ProcessEventArgs, проверяем делегат на null - откуда он берется не null в только что созданном непонятно, но помним про прикол с Manager singleton того же автора :), присваеваем его делегату собственно код который и совершает необходимые операции, а потом....
Потом просто вызываем свежесозданый делегат.
eval_2009,
06 Января 2011
-
+108
- 1
- 2
- 3
- 4
- 5
- 6
- 7
private void Form_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Escape)
{
btnCancel_Click(sender, EventArgs.Empty);
}
}
Форма - модальный диалог, Cancel кнопка обычная - никаких причин просто выставить у нее DialogResult в Cancel не было. Но ведь так нагляднее!
eval_2009,
05 Января 2011
-
+117
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
#region methods
private bool _updatingState;
public class ProcessArgs : EventArgs
{
}
internal event EventHandler<ProcessArgs> OnBeforeProcess;
public abstract void Process(IEnumerable<DataSource> data);
// Тут еще много всего, на удивление есть и методы
#endregion
#region properties
private readonly IList<IResult> _results = new List<IResult>(100);
private void buildResultsList()
{
//код
}
// ну и немного свойств
#endregion
#region events
public delegate IEnumerable<int> Strategy();
public class StrategyEventArgs : EventArgs
{
public Strategy Strategy { get; set; }
}
public event EventHandler OnResultsLoading;
private void raiseOnResultsLoading()
{
foreach (EventHandler handler in OnResultsLoading.GetInvocationList())
handler(this, EventArgs.Empty);
}
#endregion
#region members
// пусто - все мемберы сидят по другим region
#endregion
За что я не люблю regions, особенно у говнокодеров. Зато если просто открыть файлик то выглядит все замечательно, чисто и аккуратно.
eval_2009,
05 Января 2011
-
+112
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
public static class EntryPoint
{
private class NotFoundException : ApplicationException
{
public FoundException(int id, SourceType type)
private SourceType Type { get; set; }
private int Id { get; set; }
}
private class InProgressException : ApplicationException
{
public InProgressException(int id, SourceType type)
{
Type = type;
Id = id;
}
private UserViewSourceType Type { get; set; }
private int Id { get; set; }
}
public static void Analyze(SourceType type, IEnumerable<int> dataId)
{
try
{
initialize(type, dataId);
}
catch (InProgressException)
{
// немного говнокода
}
catch (NotFoundException)
{
// немного говнокода
}
}
Для того что бы внутри статического класса между двумя процедурами наладить связь (Analyze - initilize) человек определил два новых типа exceptions (private) и дал им дополнительные свойства которые нигде не используются. Exceptions эти больше нигде кроме initialize не кидаются и нигде кроме Analyze не ловятся. Ну и initialize больше ниоткуда кроме Analyze не вызывается.
В итоге имеем два лишних класса и тучу кода который можно без помех удалить, чем я собственно и занимаюсь :)
eval_2009,
05 Января 2011
-
+121
- 1
- 2
if (_flag_visible == true) obj.SetVisible();
else if (_flag_visible == false) obj.SetInvisible();
Crazzy,
05 Января 2011
-
+125
- 1
- 2
- 3
- 4
- 5
- 6
- 7
static void Initialize()
{
if (Manager.Current == null)
{
new Manager();
}
}
человек изобрел новый тип singleton, instance которого выставляется при вызове конструктора его типа. Если вызвать два раза - второй перекроет первый. Тип public, конструктор тоже public
eval_2009,
05 Января 2011
-
+125
- 1
m_PRICEURL = m_PRICEURL.Replace("{0}", "2010");
Новый Год принёс не только подарки, но и коллекцию говнокода вроде такого
Shokker,
03 Января 2011
-
+129
- 1
- 2
- 3
- 4
- 5
- 6
- 7
Exception Myex;
int responseVal = HelperMethods.DoPost(url, postdata, "text/xml; charset=utf-8", ref xmlResponse, null, out Myex);
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(new StringReader(xmlResponse));
string StatusID = xmlDoc.ChildNodes[1].ChildNodes[0].FirstChild.Value;
if (StatusID.ToLower() != "0")
Последняя строка не может не радовать. Никогда не знаешь каким большим может быть ноль ...
Othello,
03 Января 2011