【问题标题】:findcontrol textbox text without declaring variable c#findcontrol 文本框文本而不声明变量 c#
【发布时间】:2018-04-22 19:22:33
【问题描述】:

有没有办法把这两行代码变成一行

TextBox tempTextBox= grdvwEncroachmentsID.Rows[e.RowIndex].FindControl("txtbxBillTo") as TextBox;
string billToTemp = tempTextBox.Text;

【问题讨论】:

  • 嗯,没有经常调试 NullReferenceException 的程序员会问这个问题。结果不是“更好”,不是更易诊断、更易读、更高效。这是错误的,当你打算使用(cast)时,永远不要使用as

标签: c# findcontrol


【解决方案1】:

只需删除换行符!

开个玩笑。我假设你的意思是单身statement

给你:

string billToTemp = (grdvwEncroachmentsID.Rows[e.RowIndex].FindControl("txtbxBillTo") as TextBox).Text;

不过,不确定您为什么要这样做。太丑了。

【讨论】:

  • 你说的丑是什么意思?代码行的长度?
  • 是的。它使阅读变得更加困难。而且它给你更少的空间来表达你的意图。此外,如果您想重新使用该 TextBox 变量,则必须声明一个新变量或将其放入变量中(就像您在问题中所说的那样)。
  • 谢谢。我就是这么想的。
  • 幽默感+1。猫王运营商?可以用来避免 NullReference 讨厌的东西。流畅的对齐有助于提高可读性。
【解决方案2】:

使用括号:

string billToTemp = (grdvwEncroachmentsID.Rows[e.RowIndex].FindControl("txtbxBillTo") as TextBox).Text;

【讨论】:

    【解决方案3】:

    试试这个

    string billToTemp = (grdvwEncroachmentsID.Rows[e.RowIndex].FindControl("txtbxBillTo") as TextBox).Text;
    

    【讨论】:

      猜你喜欢
      • 2018-07-12
      • 2016-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-09
      • 1970-01-01
      • 2021-06-21
      • 1970-01-01
      相关资源
      最近更新 更多