gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 21:15:09 25 4
gpt4 key购买 nike

我有这门课

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com