Если запустить следующий код, который вы получите результат:Где ошибка в этой инструкции Console.WriteLine?
Ответ на: < бр >
< уш >
class Program
{
static void Main(string[] args)
{
HtmlElement element = new HtmlElement();
element.InnerHtml = "<br>";
string val = element.InnerHtml != null ? element.InnerHtml : element.InnerText != null ? element.InnerText : element.TagName;
Console.WriteLine("The answer is: "+val); // correct
Console.WriteLine("The answer is: " +element.InnerHtml !=null ? element.InnerHtml : element.InnerText != null ? element.InnerText : element.TagName); // bug?
Console.ReadLine();
}
}
public class HtmlElement
{
public string InnerHtml { get; set; }
public string InnerText { get; set; }
public string TagName { get; set; }
}
Что случилось со второй линии, которая ожидается:
Ответ: < уш >
Просто для уточнения от ответа на какой-либо интересно серфера:
Console.WriteLine("The answer is: " +element.InnerHtml !=null ? element.InnerHtml : element.InnerText != null ? element.InnerText : element.TagName); // bug?
в настоящее время оценивается как
Console.WriteLine(("The answer is : " + element.InnerHtml != null) ? element.InnerHtml : element.InnerText != null ? element.InnerText : element.TagName); // bug?
Для удобства чтения я бы переписал те вложенные?: Операции или по крайней мере разбить их на отдельные строки. –
@Jason: Перепишите как * element.InnerHtml ?? element.InnerText ?? element.TagName * будет хороший – Greg
Console.WriteLine ("Ответ: {0}"!, element.InnerHtml = нуль element.InnerHtml:! element.InnerText = нуль element.InnerText: элемент .Название тэга); –