在C#中,检索已存储在表单对象的标记中的文本数据

时间:2018-11-18 04:56:28

标签: c#

多年以来,我一直使用各种基本知识。我在Visual Basic中经常使用的一个技巧是:当我想将不可见的文本与表单控件对象(按钮,标签和(特别是)图片框)相关联时,我已经在对象的标签中存储了有用的文本。 (这对图片框特别有用,因为它们不带有text属性。)

无论如何,您都可以在Visual Basic中轻松执行以下操作:

textbox1.tag = "ID of whatever sort"

稍后,您可以通过将.tag内容分配给字符串变量,或将其显示在.text属性中来检索数据。

所以:

textbox1.text = textbox1.tag

没有困难,也没有出错。

这无法在C#中完成。至少不是直接。即使您可以直接将文本分配给标签,也无法将其作为文本检索。

我相信这是因为C#将.Tag属性的内容视为对象。但是,大概Visual Basic也是如此,但是它仍然允许无异议地进行传输。

所以我的要求是:你们中任何资深的C#大师都可以向我准确地告诉我如何将分配给.Tag的文本输入.Text吗?

1 个答案:

答案 0 :(得分:3)

只需投下

textbox1.text = (string)textbox1.tag

基本上所有类型都继承自object,因为当将字符串存储为object时,字符串是引用类型,它只是将其存储为最基本的基本类型。对于值类型,此过程称为装箱。您可以在下面阅读有关它们的信息

object (C# Reference)

  

对象类型是.NET中Object的别名。在统一类型   C#系统,所有类型,预定义和用户定义的引用类型   和值类型直接或间接继承自Object。您可以   将任何类型的值分配给类型为object的变量。当一个变量   值类型的对象转换为对象,即被装箱。当一个   类型对象的变量被转换为值类型,据说是   拆箱。有关更多信息,请参阅装箱和拆箱。

Value Types (C# Reference)

  

值类型包括两个主要类别:

     
      
  • 结构

  •   
  • 枚举

  •   
     

结构属于以下类别:

     
      
  • 数字类型

         
        
    • 整数类型

    •   
    • 浮点类型

    •   
  •   
  • 布尔

  •   
  • 用户定义的结构。

  •   

Reference types (C# Reference)

  

C#中有两种类型:引用类型和值类型。   引用类型的变量存储对其数据(对象)的引用,   而值类型的变量直接包含其数据。用   引用类型,两个变量可以引用同一对象;   因此,对一个变量的运算会影响所引用的对象   通过另一个变量。对于值类型,每个变量都有其自己的   数据的副本,并且不可能对一个数据进行操作   会影响其他变量的变量(除非是in,ref和out   参数变量参见in,ref和out参数修饰符)

Boxing and Unboxing (C# Programming Guide)

  

装箱是将值类型转换为类型对象或   到此值类型实现的任何接口类型。当CLR   将值类型装箱,将值包装在System.Object中,然后   将其存储在托管堆上。拆箱从中提取值类型   物体。装箱是隐式的。拆箱是明确的。概念   装箱和拆箱是类型系统的C#统一视图的基础   可以将任何类型的值视为对象。