Ресурсы на предстоящей платформе соединения ветвления

Это действительно зависит от того, знаете ли Вы, ли o строка и что Вы хотите сделать с ним. Если Ваш комментарий означает, что o действительно действительно строка, я предпочел бы прямое (string)o бросок - это вряд ли перестанет работать.

самое большое преимущество использования прямого броска состоит в том, что, когда это перестало работать, Вы добираетесь InvalidCastException, который говорит Вам в значительной степени, что пошло не так, как надо.

С as оператор, если o не строка, s, установлен на null, который удобен, если Вы не уверены и хотите протестировать s:

string s = o as string;
if ( s == null )
{
    // well that's not good!
    gotoPlanB();
}

Однако, если Вы не выполняете тот тест, Вы будете использовать s позже и бросать NullReferenceException. Они имеют тенденцию быть более распространенными и партия тяжелее для разыскивания, как только они происходят в дикой природе, поскольку почти каждая строка разыменовывает переменную и может бросить ту. С другой стороны, при попытке бросить к типу значения (любой примитив, или структуры такой как [1 116] DateTime), необходимо использовать прямой бросок - эти as, не будет работать.

В особом случае преобразования в строку, каждый объект имеет ToString, таким образом, Ваш третий метод может быть хорошо, если o не является пустым, и Вы думаете ToString, метод мог бы сделать то, что Вы хотите.

7
задан akarnokd 18 July 2009 в 17:49
поделиться

3 ответа

На веб-сайте IBM Developerworks есть хорошая серия по этому поводу, но самый информативный источник, который я нашел, - это эта презентация Брайана Гетца, которая стоит час вашего времени. Первые 25 минут он тратит на разговоры о предыстории, а затем представляет несколько отличных примеров новой структуры.

5
ответ дан 7 December 2019 в 05:26
поделиться
2
ответ дан 7 December 2019 в 05:26
поделиться

Брайан Гетц выступил с отличным докладом на Devoxx 08, вызванном из параллельного в параллельный, на платформе fork join и абстракции Parallel Array поверх нее. Вы можете просмотреть видео выступления и слайды на сайте Parleys

1
ответ дан 7 December 2019 в 05:26
поделиться
Другие вопросы по тегам:

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