The_Unknown_Member Ответов: 4

[C#] доступ к свойству через метод ?


Привет. Я не могу понять, как это работает:

using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CSharp_Practicing
{

    class Program
    {
        static void Main(string[] args)
        {
            Exception ex = new Exception();
            Console.WriteLine(ex.GetType().Name); // THIS LINE 

        }
    }
   
}


Кто-нибудь может мне объяснить ? Спасибо!

Что я уже пробовал:

Задавая вопрос здесь в CodeProject.com

4 Ответов

Рейтинг:
1

Kornfeld Eliyahu Peter

Исключение[^]- это класс, который наследует (как и все остальное в конце) от Объект[^] класс. Этот класс имеет метод, называемый метод GetType[^], который возвращает объект Тип[^] класс, который имеет свойство Имя[^]...


Рейтинг:
0

LLLLGGGG

Привет,

Вы можете получить доступ к этому свойству, потому что метод возвращает объект типа Type это представляет тип исключения.

Я собираюсь быть более конкретным:

ex это Exception, так что вы можете получить доступ к GetType() способ по телефону ex.GetType(), Что stamement имеет тип System.Type (ссылка), который представляет собой тип Exception Этот тип также имеет некоторые другие методы/свойства, поэтому вы можете получить к ним доступ с помощью оператора dot, как вы это делали ранее. ex Итак, вы можете написать (Я разделю его здесь, используя скобки в дидактических целях, но они не нужны).

(ex.GetType()).Name
//--[1]--------[2]--


[1]: Вы получаете экземпляр System.Type экземпляра объекта исключения ex (см. ответ Ричарда Маккатчана для получения более подробной информации о GetType() метод).
[2]: теперь у вас есть экземпляр объекта типа System.Type (на самом деле не имеет значения, как вы его получили, теперь вы действительно можете использовать его): доступ к свойству Name этого экземпляра. Итак, вы получаете " систему.Исключение " (я полагаю), потому что вы спросили систему.Тип объекта исключения и имя этого типа - "исключение".

Так говорит ваш кодекс.

Надеюсь, это поможет.


Рейтинг:
0

Richard MacCutchan

Все это описано в документации: Объект.Метод GetType (Система)[^].


Рейтинг:
0

Ashok Kumar RV

Эта расширенная форма :

Exception ex = new Exception();
Type typeInfo = ex.GetType();
Console.WriteLine(typeInfo.Name);