Я знаю, что это старый вопрос, но почему вы не заменили все свои вызовы журнала чем-то вроде Boolean logCallWasHere = true; // --- остальная часть вашего журнала здесь
Вот почему вы будете знать, когда вы хотите вернуть их обратно, и они не повлияют на ваш вызов оператора if :):
Вам придется перегрузить оператор приведения.
public class Foo
{
public Foo( double d )
{
this.X = d;
}
public double X
{
get;
private set;
}
public static implicit operator Foo( double d )
{
return new Foo (d);
}
public static explicit operator double( Foo f )
{
return f.X;
}
}
Какая кодировка символов в файле JS?
Для XML QNames я использую это RegExp:
/**
* Definition of an XML Name
*/
var NameStartChar = "A-Za-z:_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D"+
"\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF"+
"\uF900-\uFDCF\uFDF0-\uFFFD\u010000-\u0EFFFF";
var NameChar = NameStartChar+"\\-\\.0-9\u00B7\u0300-\u036F\u203F-\u2040";
var Name = "^["+NameStartChar+"]["+NameChar+"]*$";
RegExp (Name).test (value);
Он работает как шарм также с интернационализированными символами. Обратите внимание на побег. Благодаря этому я могу ограничить JS-файл только символами ASCII . Поэтому у меня нет проблем при работе с кодировками ISO-8859 и UTF-8.
Это больше не верно, если вы используете кодировки символов, в которых ASCII не является реальным подмножеством (например, в Азии UTF-16 ).
Ура,
Операторы неявного преобразования никогда не должны вызывать исключения и никогда не терять информацию, чтобы их можно было безопасно использовать без ведома программиста. Если оператор преобразования не может соответствовать этим критериям, он должен быть отмечен явным. "(выделено мной)Вам необходимо определить явное или неявное преобразование:
public class Foo
{
public static implicit operator int(Foo d)
{
return d.SomeIntProperty;
}
// ...
Другая возможность - написать метод расширения Parse и TryParse для вашего класса.
Затем вы должны написать свой код следующим образом:
var x = new Foo();
var y = int.Parse(x);
Я бы посоветовал вам реализовать интерфейс IConvertible, поскольку он предназначен для этого. См. http://msdn.microsoft.com/en-us/library/system.iconvertible.aspx