Вывод типа C# 3.0 Func/OrderBy

Мне удалось решить проблему, добавив (forceQuote = true) к аннотации @Table.

@Table(value = "MyTable", forceQuote = true)
public class MyTable {

}
5
задан Jon Skeet 6 November 2008 в 19:27
поделиться

2 ответа

Это могло также быть связано с "выводом типа типа возврата", не работающим над Method Groups.

По существу, в случаях (как Whereпредикат), где универсальные параметры находятся только во входных положениях, преобразование группы метода, хорошо работает. Но в случаях, где универсальный параметр является типом возврата (как Select или OrderBy проекции), компилятор не выведет соответствующее преобразование делегата.

8
ответ дан 18 December 2019 в 10:50
поделиться

ReturnNumber не метод - вместо этого, он представляет группу метода, содержащую все методы с именем ReturnNumber но с потенциально различными подписями арности-и-типа. Существуют некоторые технические вопросы с выяснением, какой метод в том методе группируют Вас, на самом деле хотят очень универсальным и works-every-time способом. Очевидно, компилятор мог изобразить его некоторые, даже большинство, времени, но решение было принято то помещение алгоритма в компилятор, который будет работать, только половина времени была плохой идеей.

Следующие работы, однако:

someCollection.OrderBy(new Func<SomeClass, int>(ReturnNumber))
8
ответ дан 18 December 2019 в 10:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: