Отсутствуют параметры плохая вещь в.NET?

Другой способ - проверить саму переменную в условии *ngIf, прежде чем переходить к какому-либо свойству:

<span *ngIf="selectedrecipe">
    <img src="{{selectedrecipe.imagepath}}" alt="{{selectedrecipe.name}}" class="img-responsive" style="max-height:300px">
</span>
14
задан BuddyJoe 11 November 2008 в 14:36
поделиться

7 ответов

Ну, у меня есть статья о том, что касательно / делают - но она не обсуждает, необходимо ли использовать их.

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

Другими словами, избегайте/касательно, где Вы можете сделать так легко, но не идете в широком масштабе из Вашего способа избежать их.

50
ответ дан 1 December 2019 в 06:04
поделиться

В отсутствие кортежей они иногда - самый чистый способ сделать вещи. Я обычно ненавижу их, все же.

F# имеет немного хорошего синтаксического сахара для контакта с ними. Вместо того, чтобы заставлять меня иметь дело с out параметры, это рассматривает их как методы тот возврат кортежи вместо этого. Различное TryParse методы заканчивают тем, что возвратили два кортежа элемента:

let success, value = Int32.TryParse("1234")
(* success is true *)
(* value is 1234 *)

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

4
ответ дан 1 December 2019 в 06:04
поделиться

Для большинства обстоятельств я рекомендовал бы против использования параметров. Они в основном добавляют побочные эффекты к Вашему коду и могли быть кошмаром когда дело доходит до отладки.

Существует статья о MSDN относительно параметров, доступных здесь: http://msdn.microsoft.com/en-us/library/t3c3bfhx.aspx

6
ответ дан 1 December 2019 в 06:04
поделиться

Я думаю, что они действительно полезны при необходимости.

Статья Msdn и для касательно и для параметры.

1
ответ дан 1 December 2019 в 06:04
поделиться

Хороший вопрос. Мой ответ - то, что мне особенно не нравятся они, но я действительно использую их в одном из моих проектов, где несколько возвращаемых значений распространены. У меня есть библиотека финансовых данных, которая возвращает фактическую цену (или пустой указатель/нуль), главный код ошибки и незначительный код ошибки. Библиотека имеет десятки к сотням методов, и каждый код ошибки является другим типом, таким образом создавание пользовательских классов для каждого и возврат экземпляра этого были бы очень громоздкими.

0
ответ дан 1 December 2019 в 06:04
поделиться

Параметры полезны, когда необходимо возвратить больше чем один объект в результате функции. К моим глазам,

void doSomeThing(Thing toDoItTo,
                 out OtherThing result1,
                 out AnotherThing result2)
{
    ...
}

OtherThing y;
AnotherThing z;

doSomeThing(x, out y, out z);

y.method1();
z.method2();

является намного более чистым, чем

struct DoSomeThingResults
{
    public OtherThing Result1;
    public OtherThing Result2;
}

DoSomeThingResults doSomeThing(Thing toDoItTo)
{
    ...
}

DoSomethingResults results = doSomeThing(x);

results.Result1.method1();
results.Result2.method2();

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

-1
ответ дан 1 December 2019 в 06:04
поделиться

FxCop не думает, что это - хорошая идея...

http://msdn.microsoft.com/en-us/library/ms182146 (По сравнению с 80) .aspx

-1
ответ дан 1 December 2019 в 06:04
поделиться
Другие вопросы по тегам:

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