Матчинг дженерик параметров
От: Аноним  
Дата: 16.02.12 15:11
Оценка:
Может это уже спрашивали, но у меня не получилось найти.

def m() {
  ...
  def t : object = ...;
  match(t) {
    | _ is IDictionary['k,'v] => {}
    | _ is IEnumerable['k] => {}
    | _ => {}
  }
  ...
}


Такая штука штука не работает. В принципе понятно, что компилятору нужно знать откуда объявились ['k, 'v].
То есть, так работает:

def m['k,'v]() {
  ...
  def t : object = ...;
  match(t) {
    | _ is IDictionary['k,'v] => {}
    | _ is IEnumerable['k] => {}
    | _ => {}
  }
  ...
}


Но этот матч у меня часть большого comp expression, а вводить типы во внешней функции совсем не хочется.
Есть ли обходные варианты? Сейчас беру типы из GetGenericArguments()
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.