2011-03-01 2 views
1

ce qui est l'équivalent de ce code C# dans VB.NET:Équivalent VB.NET?

UctlTest uctlTest; 
uctlTest= (UctlTest)Page.LoadControl("UserControls/UctlTest.ascx"); 
if (plcTest.Controls.Count == 0) 
    plcTest.Controls.Add(uctlTest); 

UctlTest: contrôle de l'utilisateur

plcTest: PlaceHolder

J'ai essayé ceci:

Dim uctlTestVB As UctlTestVB 
uctlTestVB = CType(Page.LoadControl("~/UserControls/UctlTestVB.ascx"), UctlTestVB) 
If (Equals(uctlTestVB.Controls.Count, 0)) Then   
    plcTest.Controls.Add(uctlTestVB) 
End If 

Mais le comte dans VB.NET est égal à 1 alors qu'en C# il est égal à 0.

+1

http://www.developerfusion.com/tools/convert/vb-to-csharp/ – Shoban

+1

Wow! StackOverflow est maintenant utilisé comme outil de conversion de code. Génial! – Mayank

+1

@Mayank .. Pourquoi pas? – Shoban

Répondre

0

un coup d'oeil rapide votre code vérifie un de comptage des enfants de contrôle différent.

C#: plcTest .Controls.Count

contre

VB: uctlTestVB .Controls.Count

Pourtant, le code VB ajoute encore le contrôle chargé de plcTest, mais les contrôles le nombre de l'instance uctlTestVB.

3

Avis vous avez un symbole "~" supplémentaire dans votre version VB, mais pas dans votre C#:

uctlTest= (UctlTest)Page.LoadControl("UserControls/UctlTest.ascx"); 

vs

uctlTestVB = CType(Page.LoadControl("~/UserControls/UctlTestVB.ascx"), UctlTestVB)

+0

a obtenu une exception: Le chemin virtuel '/UserControls/UctlReportingCentreSearchVB.ascx' mappe vers une autre application, ce qui n'est pas autorisé. – user594659

+0

Not '"/User' mais '" User'. La barre oblique signifie racine, tandis que le manque d'un signifie par rapport au répertoire courant. –

-1

Le code est équivalent, votre contrôle est probablement pas. Pourquoi ne pas charger le même contrôle dans les deux extraits et vérifier qu'ils fonctionnent de la même manière.

Vous pouvez également utiliser le débogueur/fenêtre montre et jeter un oeil à la collection Controls dans les deux et savoir comment ils diffèrent