- 01
 - 02
 - 03
 - 04
 - 05
 - 06
 - 07
 - 08
 - 09
 - 10
 - 11
 - 12
 - 13
 - 14
 - 15
 - 16
 - 17
 - 18
 - 19
 - 20
 - 21
 - 22
 - 23
 - 24
 
private bool IsSubscriptionFree()
{
    try
    {
        if (AccountManager.CurrentManager.CurrentSubscription != null)
        {
            if (AccountManager.CurrentManager.CurrentSubscription.IsValid)
            {
                if (AccountManager.CurrentManager.CurrentSubscription.Name.ToLower().Contains("free") ||
                    AccountManager.CurrentManager.CurrentSubscription.Name.ToLower().Contains("trial")
                )
                {
                    return true;
                }
            }
            return false;
        }
        return false;
    }
    catch (Exception)
    {
        return false;
    }
}
                                
 Follow us!
{
var someShit = AccountManager.CurrentManager.CurrentSub scription;
return (someShit != null) && (someShit.IsValid) && (someShit.Name.ToLower().Contains("free" )
||someShit.Name.ToLower().Contains("tria l"));
}
Как то так?
В задачу не вникал, но вытаскивать из текста trial оно или нет - это круто
Catch убрал из соображений, что ошибка тут может быть только kind of magic
ВНЕЗАПНО AccountManager.CurrentManager.CurrentSub scription.Name ОКАЗАЛОСЬ NULL IsValid БРОСАЕТ InvalidSubscriptionException КРОВЬ КИШКИ БУДЕШЬ ЗНАТЬ КАК УБИРАТЬ TRY/CATCH
private double _angle;
public double Angle
{
set
{
var k = value;
if (Math.Abs(k) > 360) k = k % 360;
if (k < 0) k += 360;
_angle = k;
}
get { return _angle; }
}
А если при обращению к полю в объекте происходит что-то страшное - это сатанизм, пишите методы, которые наглядно объясняют суть происходящего.
В данном конкретном случае эксепшен означает, что обьект не валиден, и метод IsValid должен вернуть false. Ибо здравый смысл
System.Threading.Tasks.Task<TResult>:
К примеру вот такой код:
Всё равно может выбросить исключение AggregateException при обращении к проперти Result.
Для интереса, содержимое проперти IsFauted: (Сравните с кодом Result выше)
Wodoo magic.
Может, стоит разработчикам рассказать про енумы и атрибут Flags...
Да хотя бы в хексе это писали бы... В десятичном это смотрится ужасно.
Зачем они вообще нужны? Почему их не описать статично в каком нибудь общедоступном классе?
Я чувствую, что грибы были несвежие)
internal const int TASK_STATE_FAULTED = 2097152;
а
// 2097152 is TASK_STATE_FAULTED
один фиг не использует поле
Так оно еще мало того internal, но что то мне подсказывает, что везде в сборке стоит 2097152
"В этой" же, женский род, как-никак.
гетера - женский
что непонятного то?
я бы сделал вот так:
менее производительно - это очевидно, но зато более читаемо
Никогда не занимался распарсиванием свойств из строки - enum флагов - гораздо удачнее
Пц парсер