Avatar billede yibman Nybegynder
27. maj 2006 - 20:29 Der er 3 kommentarer

C# nybegynder

Hej jeg er en nybegynder i C# programmering. Er der nogen der kan fortælle mig hvad der sker i kodelinjerne i nedenstående klasser. Tak.

using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.Collections.ObjectModel;
using System.Diagnostics;
using System.Reflection;

namespace WindowsApplication3.Data
{
    public class ObjectCollection<T> : Collection<T>
    {
        public ObjectCollection<T> Search(string search)
        {
            ObjectCollection<T> completedSearch = new ObjectCollection<T>();

            foreach (T o in this)
            {
                Type t = o.GetType();
                PropertyInfo[] pInfos = t.GetProperties();

                foreach (PropertyInfo pInfo in pInfos)
                {
                    object oval = pInfo.GetValue(o, null);
                    string val;

                    if (oval == null) val = "";
                    else val = oval.ToString();

                    if (val.ToLower().Contains(search.ToLower()) && !completedSearch.Contains(o))
                        completedSearch.Add(o);
                }
            }

            return completedSearch;
        }

        public ObjectCollection() { }
    }
}

using System;
using System.Collections.ObjectModel;
using System.Collections.Generic;
using System.Text;
using Wilson.ORMapper;

namespace WindowsApplication3.Data
{
    public class DataObject
    {
        private int id = 0;
        public int ID
        {
            get { return this.id; }
        }

        private LogEntryCollection logEntries;
        public LogEntryCollection LogEntries
        {
            get
            {
                if (logEntries == null)
                {
                    logEntries = new LogEntryCollection(this);

                    OPathQuery<LogEntry> opath = new OPathQuery<LogEntry>("ReferringID = " + this.ID + " AND Type = '" + this.GetType().ToString() + "'");
                    Collection<LogEntry> os = DataManager.Current.Engine.GetCollection<LogEntry>(opath);
                    foreach (LogEntry le in os) logEntries.Add(le);
                }

                return logEntries;
            }
        }

        public void Delete()
        {
            if (this.id > 0) DataManager.Current.Engine.MarkForDeletion(this);
            this.Persist();
        }
       
        public void Persist()
        {
            DataManager.Current.Engine.PersistChanges(this, Wilson.ORMapper.PersistDepth.ObjectGraph);
            if (logEntries != null) logEntries.Persist();
        }

        public DataObject() { }
    }
}

Og denne metode :

public Kontaktperson()
        {
            DataManager.Current.Engine.StartTracking(this, Wilson.ORMapper.InitialState.Inserted);
        }
Avatar billede arne_v Ekspert
27. maj 2006 - 21:10 #1
hvis du er nybegynder i C# tror jeg at du skulle starte med noget nemmere

den første klasse er så vidt jeg kan se en type safe collection hvor man
kan søge efter efter alle de objekter som indeholder en bestemt værdi
og som vel af mærke søger i alle felter ikke i et bestemt

den anden klasse er en wrapper omkring nogle log entries som bruger Wilson
O/R mapper
Avatar billede arne_v Ekspert
09. juli 2006 - 04:16 #2
OK ?
Avatar billede team-temp Nybegynder
22. august 2006 - 14:50 #3
Sker der noget Yibman?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester