c# - 如果将类转换为对象,如何获取公共(public)变量值

标签 c# class object

我有这门课

class data_
{
  public string string_data;
  public int index_data;
  public data_(string s,int i)
  {
     string_data = s;
     index_data = i;
  }
}

现在我将这个类作为一个对象传递给

public partial class Form1:Form
{
    private void Button1_Click(object sender, EventArgs e)
    {
        int index =0;
        foreach(string line in File.ReadLines("data"))
        {
            Threadpool(new WaitCallBack(execute,new data_(line,index))); // I am passing the class as an object here
            ++index;
        }
    }
    private void execute(object processed_data)
    {
        string text = processed_data.string_data; //error
        int index = processed_data.index_data; //error
        // work and work
    }
}

如您所见,data_ 类有 2 个可用的公共(public)变量,我在启动线程时分配它们的值,但我不能执行 processed_data.string_dataprocessed_data.index_data 作为对象传递,WaitCallBack 只接受对象,没有别的。那么如何在 execute void 中访问 processed_data 的 2 个变量?(因为看起来这 2 个变量在我将类作为对象传递后消失了)

最佳答案

使用新方法后,您可以将对象转换回原始类型。

private void execute(object processed_data)
{
    var data = (data_)processed_data;
}

当然,如果您打算这样做,那么您只需将方法参数设置为正确的类型即可。

关于c# - 如果将类转换为对象,如何获取公共(public)变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34892432/

相关文章:

java - 检查以整数数组作为元素的数组中是否存在整数数组。 [Java]

c# - 将 orderby、Skip() 和 Take() 与 LINQ 一起使用时出现重复行

c# - 从数据库自动生成mvc中的模型类

c# - ??运算符未触发 DataTable DataRow 中的 System.DBNull 类型

python - 我之前在脚本中定义的函数出现名称错误

java - 如何去另一个类(class)执行代码并返回上一个类(class)

c# - 在 ISAPI 筛选器上调用 LoadLibraryEx 失败

python - 在类外部声明的变量

php - 对象像一个数组? (PHP)

javascript - 在 JavaScript 中将属性嵌套在属性数组中