Wyjaśnienie przykładowego kodu

0

Witam,

Mam taką oto metodę

public static void DisplayDefiningAssembly(this object obj)
        {
            Console.WriteLine("{0} lives here: => {1}\n", obj.GetType().Name,
               Assembly.GetAssembly(obj.GetType()).GetName().Name);
        } 

I kompletnie jej nie rozumiem. Wiem, że Assembly to klasa, GetAssembly to metoda, ale jak i w jakim celu się tworzy takie konstrukcje? Pomijając aspekt metod rozszerzających.

0

-> zastępuje *wskaźnik.obiekt

1

@Sumek

Generalnie to, co tu widzisz to wywolanie metody Console.WriteLine(string, params object[]). Pierwszym parametrem jest string zawierajacy placeholdery, czyli takie cosie: {0}, {1} itd. Drugim parametrem jest taka dziwna tablica obiektow, ktore beda powrzucane w te placeholdery. Dziwna dlatego, ze nie przekazujesz jej do metody jako jednej zmiennej tablicowej, tylko normalnie po przecinku tak jakbys przekazywal wiele parametrow osobno. W twoim przykladzie elementami tej dziwnej tablicy są:

obj.GetType().Name'' i ''Assembly.GetAssembly(obj.GetType()).GetName().Name

Nazwy są dość intuicyjne, pierwsza zwraca nazwe typu obiektu "obj" a druga nazwe assembly w ktorym ten obiekt jest zdefiniowany

dodanie znacznika <code class="csharp"> - @furious programming

1 użytkowników online, w tym zalogowanych: 0, gości: 1