Dans une fonction, pour des besoins métiers et fonctionnels, j'ai la structure suivante

Attention ! Ça pique les yeux !!!


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
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
 
if(A!= null && A.truc == true)
{
 ....if (B!= null && B.truc == true)
 ....{
 ........if (C!= null && C.truc == true)
 ........{
.............if (D == null ||!(D.machin == E.biduleA || D.machin == E.biduleB || D.machin == E.biduleC)) return false;
........}
........else
........{
.............if (D == null ||!(D.machin == E.biduleA || D.machin == E.biduleB )) return false;
........}
....}
....else 
....{ 
........if (C!= null && C.truc == true)
........{
.............if (D == null ||!(D.machin == E.biduleA || D.machin == E.biduleC)) return false;
.........}
.........else
.........{
.............if (D == null || D.machin != E.biduleA) return false;
.........}
.....}
}
else 
{
....if (B!= null && B.truc == true)
....{
.........if (C!= null && C.truc == true)
.........{
..............if (D == null ||!(D.machin == E.biduleB || D.machin == E.biduleC)) return false;
..........}
.........else
........{
.............if (D == null ||  D.machin != E.biduleB) return false;
.........}
....}
....else
....{
.........if D== null || D.machin != E.biduleC) return false;
....}
}
quelqu'un a-t-il une idée pour optimiser ce code ?

C'est du Winform classique, 100% "Client lourd"