WPF: Я не понимаю класс TextCompositionEventArgs

Вы хотите объект proc:

gaussian = Proc.new do |dist, *args|
  sigma = args.first || 10.0
  ...
end

def weightedknn(data, vec1, k = 5, weightf = gaussian)
  ...
  weight = weightf.call(dist)
  ...
end

Просто примечание, что Вы не можете установить параметр по умолчанию в объявлении блока как этот. Таким образом, необходимо использовать нащельную рейку и установить значение по умолчанию в самом коде proc.

<час>

Или, в зависимости от Вашего объема всего этого, может быть легче передать в имени метода вместо этого.

def weightedknn(data, vec1, k = 5, weightf = :gaussian)
  ...
  weight = self.send(weightf)
  ...
end

В этом случае Вы просто называете метод, который определяется на объекте вместо того, чтобы передать в полном блоке кода. В зависимости от того, как Вы структурируете это, Вы, возможно, должны заменить self.send object_that_has_the_these_math_methods.send

<час>

Наконец, что не менее важно, можно подвесить блок от метода.

def weightedknn(data, vec1, k = 5)
  ...
  weight = 
    if block_given?
      yield(dist)
    else
      gaussian.call(dist)
    end
  end
  ...
end

weightedknn(foo, bar) do |dist|
  # square the dist
  dist * dist
end

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

10
задан codymanix 9 September 2009 в 23:33
поделиться

1 ответ

Ни то, ни другое не является более эффективным, использование метода WHERE считается старым способом ( http://msdn.microsoft.com/en-us/library/ms190014.aspx ). Вы можете посмотреть на план выполнения и увидеть, что они делают то же самое.

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

  • ControlText: Это текстовые события элемента управления, то есть: если вы нажмете Ctrl + буква, вы увидите его здесь. Подобно SystemText.

  • Обычно, если вы просто ищете стандартные «текстовые» события, вам просто нужно посмотреть на свойство «Текст». Подробнее см. Обзор входа .

    12
    ответ дан 4 December 2019 в 00:26
    поделиться
    Другие вопросы по тегам:

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