Каково значение угловых скобок на методах LINQ в Intellisense? (Содержит <>, количество <>, Отличный <>, и т.д.),

Они обычно включают дженерики. Но некоторые методы с дженериками не имеют их, и не все дополнительные методы имеют их.

Они только что "были там" со дня один, мы все видели их; но я понял, что все еще не знаю то, что они имеют в виду, и я не могу найти ответ нигде. Теперь это действительно прослушивает меня. Google просто поднимает результаты, которые являются о XML и т.д.

Это официально документируется где-нибудь?Спасибо.

Править: Хорошо это является просто большим. Так как я просто создал учетную запись, чтобы сделать мое первое сообщение Переполнения стека, получить ответ для этого горящего вопроса; мне не разрешают разместить мою симпатичную фотографию Intellisense или создать новый тег "угловые скобки". Я люблю Переполнение стека, но... что приветствие!

Возможно, моя проблема состоит в том, что их на самом деле не называют "угловыми скобками"...??

Так или иначе я предполагаю, хотите ли Вы действительно видеть мой красивый снимок экрана, Вы могли бы вручную перейти в:

Отличный>

Увеличьте меня, таким образом, я могу включать его в сообщение, спасибо.;)

5
задан SLaks 9 April 2010 в 13:14
поделиться

5 ответов

Эти методы являются общими.

Однако компилятор автоматически определяет параметр универсального типа из вызова метода, поэтому вам не нужно использовать скобки при вызове метода.

Например, если у вас есть IEnumerable myNumbers , следующие четыре оператора эквивалентны:

myNumbers.Count();
myNumbers.Count<int>();
Enumerable.Count(myNumbers);
Enumerable.Count<int>(myNumbers);

В первом и третьем вызовах компилятор выводит int параметр, поскольку myNumbers является IEnumerable .

Метод расширения Count объявлен (в System.Core.Dll) следующим образом:

public static int Count<TSource>(this IEnumerable<TSource> source);
8
ответ дан 13 December 2019 в 19:24
поделиться

они предназначены для дженериков. Когда вы используете функции, вам не всегда нужно вставлять их, потому что во многих случаях компилятор может понять это по контексту.

2
ответ дан 13 December 2019 в 19:24
поделиться

Это означает, что методы являются универсальными, т.е. они не зависят от типа.

Хорошая информация о типах Generics: http://msdn.microsoft.com/en-us/library/512aeb7t.aspx

0
ответ дан 13 December 2019 в 19:24
поделиться

Это сигнатуры универсального метода. Я предлагаю вам узнать о них больше.

Несколько интересных фактов о дженериках: во-первых, они не являются универсальными после компиляции. Все типы решены и высечены в камне до того, как вы запустите приложение. Во-вторых, компилятор часто может понять, что вы имеете в виду, поэтому вам не нужно говорить об этом явно. Например, если сигнатура метода - DoSomething (t withThis) , вы можете вызвать этот метод, например DoSomething («со мной») или you можно опустить общий тип: DoSomething («со мной») . Это связано с тем, что компилятор смотрит на типы, переданные в метод как аргументы, и определяет параметр типа для метода. Потрясающие.

1
ответ дан 13 December 2019 в 19:24
поделиться

Книга Джона Скита C # in Depth подробно описывает обобщения и linq и многое проясняет для меня - я очень рекомендую ее.

0
ответ дан 13 December 2019 в 19:24
поделиться
Другие вопросы по тегам:

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