Тип переменной, если она null
От: Аноним  
Дата: 07.03.06 06:08
Оценка:
У меня есть объявление MyClass M=null. Как получить тип у M?
Re: Тип переменной, если она null
От: Mab Россия http://shade.msu.ru/~mab
Дата: 07.03.06 06:11
Оценка:
Здравствуйте, Аноним, Вы писали:

А>У меня есть объявление MyClass M=null. Как получить тип у M?

А что такое 'тип у M'? Тип переменной по объявлению -- MyClass. Типа значения переменной нет, так как нет и самого значения.
Re[2]: Тип переменной, если она null
От: Аноним  
Дата: 07.03.06 06:13
Оценка:
Здравствуйте, Mab, Вы писали:

Mab>Здравствуйте, Аноним, Вы писали:


А>>У меня есть объявление MyClass M=null. Как получить тип у M?

Mab>А что такое 'тип у M'? Тип переменной по объявлению -- MyClass. Типа значения переменной нет, так как нет и самого значения.

Я имел в виду как получить тип переменной. Я вижу что у M тип MyClass. но мне нужно сделать так typeof(M). Причём M может быть равно null. И так для любой переменной. Как быть? У рихтера читал что для переменной нельзя делать typeof. А метод GetType я не вызову если значение null. Как быть?
Re[3]: Тип переменной, если она null
От: Mab Россия http://shade.msu.ru/~mab
Дата: 07.03.06 06:40
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>Как быть?

Никак. Изменить дизайн так, чтобы подобных проблем не возникало.
Re[3]: Тип переменной, если она null
От: TK Лес кывт.рф
Дата: 07.03.06 08:48
Оценка: 112 (12)
Hello, " Аноним "

> Я имел в виду как получить тип переменной. Я вижу что у M тип MyClass. но

> мне нужно сделать так typeof(M). Причём M может быть равно null. И так для
> любой переменной. Как быть? У рихтера читал что для переменной нельзя
> делать typeof. А метод GetType я не вызову если значение null. Как быть?

static Type GetType<T>(T arg)
{
   return typeof(T);
}
static void Main(string[] args)
{
   string arg = null;
   Console.WriteLine(GetType(arg).ToString());
}
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[4]: Тип переменной, если она null
От: Bashik Украина  
Дата: 07.03.06 16:05
Оценка:
Здравствуйте, TK, Вы писали:

TK>
TK>static Type GetType<T>(T arg)
TK>{
TK>   return typeof(T);
TK>}
TK>static void Main(string[] args)
TK>{
TK>   string arg = null;
TK>   Console.WriteLine(GetType(arg).ToString());
TK>}
TK>


В данном случае всегда вернктся тип извесный компилятору, в случае когда переменная null это единственное что можно получить, но если не нул, то тогда не получим отсюда ничего интересного, можно сделать так
        static Type GetType<T>(T arg)
        {
            if (arg != null)
                return arg.GetType();

            return typeof(T);
        }

но вобще это какаято надуманная проблема
Re[5]: Тип переменной, если она null
От: Lloyd Россия  
Дата: 07.03.06 17:24
Оценка: +3
Здравствуйте, Bashik, Вы писали:

B>
B>        static Type GetType<T>(T arg)
B>        {
B>            if (arg != default(T))
B>                return arg.GetType();

B>            return typeof(T);
B>        }
B>

B>но вобще это какаято надуманная проблема
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.