C #проверить, назначена ли переменная

Я пытаюсь закодировать метод расширения Linq MinBy

public static class Extensions
{
    public static T MinBy<T>(this IEnumerable<T> source, Func<T,int> selector)
    {
        T min;
        int? minKey = null;
        foreach (var x in source)
        {
            var key = selector(x);
            if (minKey == null || key < minKey)
            {
                minKey = key;
                min = x;
            }
        }
        if (minKey == null)
        {
            throw new ArgumentException("source should not be empty");
        }
        return min;
    }
}

. Я думаю, что моя логика верна и читабельна. Но я получаю ошибку сборки

Use of unassigned local variable 'min'

Что я могу с этим поделать? Могу ли я проверить, назначена ли переменная?


Пояснение :Функция MinBy может ответить на следующий вопрос. У какого из чисел [-5, -2, 3] наименьший квадрат?

> new List<int>{-5,-2,3}.MinBy(x => x*x)
-2

Функция Min в.NET отвечает на другой вопрос (, который является наименьшим из квадратов )

> new List<int>{-5,-2,3}.Min(x => x*x)
4
-. 121 ---1030761- Отсутствует анализ кода PyDev Я установил Eclipse 3.7.2 из APT в Ubuntu 12.04 и установил PyDev в Eclipse. Во-первых, он предупреждает о неиспользованном импорте и неиспользованном диком импорте, но сегодня он больше не отображает их. Однако может...

Я установил Eclipse 3.7.2 из APT в Ubuntu 12.04 и установил PyDev в Eclipse. Во-первых, он предупреждает о неиспользованном импорте и неиспользованном диком импорте, но сегодня он больше не отображает их. Однако он может отображать такие ошибки, как отсутствующие скобки.

Я создал нового пользователя и установил PyDev, используя этого пользователя, проблема все еще возникает. Как я могу включить их для предупреждений? Я не менял настройки анализа кода.

11
задан Fish Monitor 4 July 2012 в 09:45
поделиться