【问题标题】:What's the difference if you use a "+" or no "+" in outputting?如果在输出中使用“+”或不使用“+”有什么区别?
【发布时间】:2012-06-01 17:39:47
【问题描述】:
Div1.InnerHtml = (someString);

-VS-

Div1.InnerHtml += (someString);


我注意到他们都做同样的事情,但是我是否有 + 有什么真正的区别吗?
还有..InnerTextInnerHtml有什么区别?

【问题讨论】:

  • 如果你得到你想要的信息,别忘了把答案标记为已接受

标签: c# string text


【解决方案1】:

+= 会将(someString) 附加到Div1.InnerHtml 的现有值,而= 会将Div1.InnerHtml 的值替换(someString)

如果结果相同,那么Div1.InnerHtml 的起始值很可能是nullstring.Empty ("")

关于 InnerTextInnerHtmlInnerHtml 可能会返回类似 <h1>Hello World</h1> 的内容,而 InnerText 将返回 Hello World(没有实际 HTML 元素的元素的值)。

考虑这些情况:

string someString = "Hello";
string innerHtml = "";

innerHtml += someString; // result will be "Hello"

string someString = "Hello";
string innerHtml = "";

innerHtml = someString; // result will be "Hello"

string someString = "Hello";
string innerHtml = "World";

innerHtml += someString; // result will be "HelloWorld"

string someString = "Hello";
string innerHtml = "World";

innerHtml = someString; // result will be "Hello"

【讨论】:

    【解决方案2】:

    第一个问题的答案

    C# String Append -: += 用现有字符串追加字符串

    另一个例子是

    string s = "abc";
    s+="cde";
    
    output
    s = "abcde"
    

    第二个问题的答案

    innerText 将按原样检索值,但如果它包含标签,它将按原样呈现文本,而innerHTML 通过应用 HTML 标签(如果有)来检索值。

    【讨论】:

      【解决方案3】:

      它们不是完全一样的东西。这是关于字符串操作,而不是与 ASP.NET 相关的特定内容
      首先将 someString 放在 Div1 的字符串属性 InnerHtml 中,
      第二个将 InnerHtml 设置为 InnerHtml +(someString),因此,例如,如果 InnerHtml 在此操作之前包含字符串“aa”,则在后一种情况下它将变为“aaSomeString”,在前一种情况下将变为“SomeString”。

      【讨论】:

        【解决方案4】:

        他们只是在做同样的事情,因为当你这样做时 Div1 是空的 +=

        += 是附加的,所以如果你连续几次这样做,你会看到你得到了你可能没有预料到的数据。

        赋值运算符 (=) 将简单地将 Div1 的值设置为左侧的任何值,而不管之前的值是什么。

        【讨论】:

          【解决方案5】:
          1. += 是串联(a = a + b 的缩写)

            = 将用右侧的新值覆盖该值

          2. innerHtml 将允许您添加标签,例如 <p>div

            innerText 会将这些标签编码为<p><div>

          【讨论】:

            【解决方案6】:

            += 是一个速记运算符

            例如

            i = i + (some value) and i+=(some value) both is same.
            

            所以,一般来说,

            Left_Val (operator)= right_val and Left_Val = Left_Val (operator) right_val are same
            

            请注意,operator 应该是二进制的。 速记运算符不能与一元(如一元减号)和三元运算符(如?:)一起使用。

            【讨论】:

              猜你喜欢
              • 2015-04-29
              • 1970-01-01
              • 2013-11-26
              • 2014-08-05
              • 1970-01-01
              • 2015-01-17
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多