次のコードを実行すると、出力が得られます。
答えは次のとおりです。 <br>
<br>
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; }
}
2 行目に何が起こったのか、次のようになると予想されます。
答えは次のとおりです。 <br>
疑問に思っているサーファーのために答えを明確にするために:
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?