2017-02-06 10 views
0

Я пытаюсь рассчитать% от уровня бедности, дать доход, количество людей в семье и федеральные руководящие принципы. Код, который я использую в Access с выражением строитель (VB, я считаю) является:Как сделать оператор «IF» в вычисленном свойстве объекта в Lightswitch C#?

IIf([NumberInHousehold]>=1,([AnnualHouseHoldIncome]/(7880+([NumberInHousehold]*4180))),0) 

Есть ли C# эквивалент? NumberInHouseHold имеет тип данных «целое число», а тип данных для AnnualHouseHoldIncome - «Деньги». Вычисляемое поле также является «целым числом».

ответ

1

Наиболее прямой эквивалентно VBA (и VB.Net) IIF() функция является «: » оператор (обычно известный как «тройной» или «условным» оператора), например:

result = numberInHousehold >= 1 
    ? (annualHouseholdIncome/(7880 + (numberInHousehold * 4180))) 
    : 0; 

Обратите внимание, что тернарный оператор будет оценивать только ветвь результата, которую он использует, тогда как IIf() - это функция, которая оценивает все свои аргументы независимо от истины условия. В большинстве случаев поведение тройного оператора - это то, что вы хотите, но оно отличается от IIf().

+0

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

+0

На самом деле, добавив ничего, кроме NumberInHouseHold Field, нуль записывается в вычисленное поле. – Mark

+0

Нулевые значения в поле NumberInHousehold или AnnualHouseholdIncome, возможно? – Craig