Си диез / Говнокод #19688 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
public static bool IsObjectIs<T>(object o)
{
    if (o == null)
        return false;

    try
    {
        object b = (T)o;
        return true;
    }
    catch
    {
        return false;
    }
}

Такая вот реализация c# оператора 'is'

Запостил: lonkimonki lonkimonki, (Updated )

Комментарии (22) RSS

  • А is работает для примитивных типов?
    Этот код видимо да.
    Ответить
    • примитивные типы в C# являются т.н. valuetypes
      это те же самые объекты, просто они на стеке живут
      Ответить
        • в жабочке и объективной сишечке такой хуйни нет

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

          в объективной сишечке блоки (тамошние лямбды) могли жить в стеке, и могли наебать незадачливого программиста, рискнувшего передать указатель на них куда-то
          но со времен ARC они автоматом переселяются в кучу при первом чихе
          Ответить
          • >> структуры и объекты (што одно и тоже) всегда живут в куче

            а нахуя 2 конструкции , которые делаю одно и тоже? Ладно в плюсах для совместимости оставили, но в остальных языках нахуй такой финт не нужен
            Ответить
            • А в шарпе value type аля структуры вообще умеют жить в куче (не полем класса и не элементом массива)?
              Ответить
            • > Ладно в плюсах для совместимости оставили, но в остальных языках нахуй такой финт не нужен
              Это как раз ObjC полностью совместим с сишкой, а не кресты.
              Ответить
              • объективные сишечки изначально могли вообще реализовываться проепроцессором
                Ответить

Добавить комментарий

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8