Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 4 odgovora
  • 3.892 pregleda

Najnovija ↓

iz VB.NET-a u C# 16.03.2004. u 09:23 · pre 275 meseci #1
Zdravo svima,
da li mi neko moze pomoci ovo iz VB.Net-a u C# da konvertujem. Hvala na svakoj pomoci.


Private Sub ButtonLog_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonLog.Click
' Login to Exchange Server
oSession = CreateObject("MAPI.Session")
oSession.Logon(ShowDialog:=False, NewSession:=False)

If (oSession.CurrentUser.Name = "Unknown") Then
'Not a good logon, logoff and exit
oSession.Logoff()
MsgBox("Logon error!", MsgBoxStyle.OKOnly + MsgBoxStyle.Exclamation, "CDO Logon")
Exit Sub
End If
End Sub

Private Sub ButtontvFill_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtontvFill.Click
' Fill Tree View with MAPI Folders
Dim oStore As MAPI.InfoStore
Dim childNode As TreeNode

rootNode = Me.TreeViewMAPIFolders.Nodes.Add("Exchange Folders")
For Each oStore In oSession.InfoStores
childNode = Me.rootNode.Nodes.Add(oStore.Name)
RecurseFolder(oStore.RootFolder, childNode)
Next
ButtontvFill.Visible = False
End Sub

Private Sub RecurseFolder(ByVal RootFolder As MAPI.Folder, ByVal parentNode As TreeNode)
Dim subNode As TreeNode
Dim subFolder As MAPI.Folder

For Each subFolder In RootFolder.Folders
subNode = New TreeNode(subFolder.Name)
parentNode.Nodes.Add(subNode)
RecurseFolder(subFolder, subNode)
Next
End Sub
Re: iz VB.NET-a u C# 16.03.2004. u 23:24 · pre 275 meseci #3
Hvala na odgovoru!
Ja sam sada to ovako sama pocetnicki pokusala, medjutim dobijam error da foreach
ne moze na varijable tipa object da se primenjuje, zato sto nema definiciju za "GetEnumerator"... ?????
Eine 'foreach'-Anweisung kann nicht auf Variablen des Typs 'object' angewendet werden, weil 'object' keine Definition für 'GetEnumerator' enthält, oder Zugriff nicht möglich ist.



MAPI.Session oSession = new MAPI.Session();
Object vEmpty = Missing.Value;
// Login to Exchange Server
oSession.Logon(vEmpty, vEmpty, true, true, 0, true, vEmpty);

MAPI.InfoStores oStore = null;
TreeNode childNode = null;
TreeNode rootNode = TreeViewMAPIFolders.Nodes.Add("Exchange Folders");

foreach (MAPI.InfoStores oStore in oSession.InfoStores)
{

childNode = this.rootNode.Nodes.Add(oStore.Name);
RecurseFolder(oStore.RootFolder, childNode);
}

Unapred hvala,
Margo
Re: iz VB.NET-a u C# 17.03.2004. u 14:31 · pre 275 meseci #4
U c#, foreach se koristi samo za kolekcije koje implementiraju IEnumerable interfejs ili ako deklarišu GetEnumerator metod.

U ovom slučaju možeš da upotrebiš običnu for petlju uz Count i get_Item():

Code:
            
for (int i = 1; i <= (int)((MAPI.InfoStores)session.InfoStores).Count; i++)
{
    MAPI.InfoStore store = (MAPI.InfoStore)((MAPI.InfoStores)session.InfoStores).get_Item(i);
    childNode = rootNode.Nodes.Add((string)store.Name);
    this.RecurseFolder((MAPI.Folder)store.RootFolder, childNode);
}
Re: iz VB.NET-a u C# 18.03.2004. u 10:59 · pre 275 meseci #5
Citat:
ZokiR:
U c#, foreach se koristi samo za kolekcije koje implementiraju IEnumerable interfejs ili ako deklarišu GetEnumerator metod.

Isto važi i za VB.NET. Postoji i COM verzija IEnumerable i COM platform invoke uvek za COM kolekcije implementira .NET IEnumerable, pa su COM kolekcije dostupne kao takve u .NETu. MIslim da se ovde krije nešto drugo.
BTW, mali input, čak i MS preporučuje sa strane optimizacije da se ne koristi foreach, pošto je sporiji od for(x=0;x<Count;x++)
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme