Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.06.2015, 21:54   #1
hoz
Форумчанин
 
Аватар для hoz
 
Регистрация: 29.06.2013
Сообщений: 132
По умолчанию Причина использование свойства Name

В книге попался такой код:
PHP код:
// This method will print out the details of any enum.
        
static void EvaluateEnum(System.Enum e)
        {
            
Console.WriteLine("=> Information about {0}"e.GetType().Name);

            
Console.WriteLine("Underlying storage type: {0}",
              
Enum.GetUnderlyingType(e.GetType()));
            
// Get all name/value pairs for incoming parameter.
            
Array enumData Enum.GetValues(e.GetType());
            
Console.WriteLine("This enum has {0} members."enumData.Length);
            
// Now show the string name and associated value, using the D format
            // flag (see Chapter 3).
            
for (int i 0enumData.Lengthi++)
            {
                
Console.WriteLine("Name: {0}, Value: {0:D}",
                  
enumData.GetValue(i));
            }
            
Console.WriteLine();
        } 
Возник вопрос. Как правильно читать эту конструкцию?
PHP код:
 e.GetType().Name 
Я так понимаю этот метод описан здесь
Выходит он должен возвращать имя текущего члена. Тока вот я заметил, что ничего этот метод не даёт.
Если добавить ещё одну строку в том код:
PHP код:
Console.WriteLine("=> Information about {0}"e.GetType()); 
Получится такой код:
PHP код:
static void EvaluateEnum(System.Enum e)
    {
        
Console.WriteLine("=> Information about {0}"e.GetType().Name);
        
Console.WriteLine("=> Information about {0}"e.GetType());

        
Console.WriteLine("Underlying storage type: {0}",
          
Enum.GetUnderlyingType(e.GetType()));
        
// Get all name/value pairs for incoming parameter.
        
Array enumData Enum.GetValues(e.GetType());
        
Console.WriteLine("This enum has {0} members."enumData.Length);
        
// Now show the string name and associated value, using the D format
        // flag (see Chapter 3).
        
for (int i 0enumData.Lengthi++)
        {
            
Console.WriteLine("Name: {0}, Value: {0:D}",
              
enumData.GetValue(i));
        }
        
Console.WriteLine();
    } 
Если его вызвать, то вот что вижу:
Код:
=> Information about Colors
=> Information about Colors
Underlying storage type: System.Int32
This enum has 4 members.
Name: None, Value: 0
Name: Red, Value: 1
Name: Green, Value: 2
Name: Blue, Value: 4
Получается, что конструкции:
PHP код:
e.GetType().Name;
e.GetType(); 
Возвращают тоже самое. Тогда какой резон в свойстве Name, который в конце ?
hoz вне форума Ответить с цитированием
Старый 26.06.2015, 10:59   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Ваш Colors лежит ли в каком-то неймспейсе?
видимо нет.
Type.ToString вернет полное имя типа с пространством имен.
Name возвращает только название типа
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование у формы свойства "Cycle" с "MultiPage" Скрипт Microsoft Office Excel 7 23.12.2013 10:31
run-time error '7777' неправильное использование свойства ListIndex чувачек Microsoft Office Access 5 20.09.2012 11:20
Причина иероглифоф coNsept Общие вопросы .NET 1 21.02.2012 18:21
в чем причина Arassir PHP 2 04.11.2011 12:56
Причина ошибки Wa_sja Паскаль, Turbo Pascal, PascalABC.NET 11 05.09.2010 23:07