首页 新闻 会员 周边 捐助

c# 带参数object的函数怎么调用

0
悬赏园豆:15 [已解决问题] 解决于 2022-12-16 17:08

private void Stem(object tsr)
{
.............................
}

例如这样一个带object参数的函数,应该怎么调用?

tea2007的主页 tea2007 | 初学一级 | 园豆:7
提问于:2022-12-14 11:14

看调用的值是属于什么类型参数,如果 比如你的是123的int参数,那么你就使用强转,
int x =Convet.Toint32(object tsr);
这样看得懂吗

何生有二十六画 1年前

@何生有二十六画: 我加参还是出错,已重开新贴,麻烦看看,谢谢

tea2007 1年前
< >
分享
最佳答案
0

直接传参数,所有的对象都可以隐式转化为object.
Stem("123");

收获园豆:2
BengBaLaHei | 初学一级 |园豆:22 | 2022-12-14 11:28

传什么参数才合适,123是什么意思?

tea2007 | 园豆:7 (初学一级) | 2022-12-14 11:35

乱传一个参数?

tea2007 | 园豆:7 (初学一级) | 2022-12-14 11:35

@tea2007: 看你这个方法是干啥的啊,传字符串数值对象都行啊

BengBaLaHei | 园豆:22 (初学一级) | 2022-12-14 11:38

@BengBaLaHei:
private void Stem(object tsr)
{
Whicut heore=tsr as Whicut
}
原文是这样的,Whicut 就是wpf窗体名称,我应该传什么参数?

tea2007 | 园豆:7 (初学一级) | 2022-12-14 12:46

@BengBaLaHei: 我加参还是出错,已重开新贴,麻烦看看,谢谢

tea2007 | 园豆:7 (初学一级) | 2022-12-16 11:03
其他回答(3)
0

什么类型都是object ,你参数 是int 类型, object 就变成int 类型

收获园豆:2
永远跟党走i | 园豆:1542 (小虾三级) | 2022-12-14 12:23

private void Stem(object tsr)
{
Whicut heore=tsr as Whicut
}
原文是这样的,Whicut 就是wpf窗体名称,我应该传什么参数?

支持(0) 反对(0) tea2007 | 园豆:7 (初学一级) | 2022-12-14 12:46

@tea2007: Whicut类型的参数

支持(0) 反对(0) WmW | 园豆:424 (菜鸟二级) | 2022-12-15 09:33

@WmW: 我加参还是出错,已重开新贴,麻烦看看,谢谢

支持(0) 反对(0) tea2007 | 园豆:7 (初学一级) | 2022-12-16 11:03
0

//参数
Whicut prams=new Whicut();
//调用
Stem(prams);

//原方法
private void Stem(object tsr)
{
Whicut heore=tsr as Whicut
}

//这里的as是个“里式转换”,参数是object 类型,而object 是任何一个类型的基类,所以你的方法可以传任何参数:
例如:
Stem(123);
Stem(“str”);
但是只有传的参数是Whicut类型的时候tsr as Whicut才能被转换出来,你传其它类型的heore都为null

收获园豆:11
soulsjie | 园豆:277 (菜鸟二级) | 2022-12-14 14:15

有道理,想问问原来的这句话:Whicut heore=tsr as Whicut 起什么作用,好像没什么意义。

支持(0) 反对(0) tea2007 | 园豆:7 (初学一级) | 2022-12-14 14:34

@tea2007:
是的,直接这样写就行了
private void Stem(Whicut whicut )
{
//whicut 就是你的窗体类
}

支持(0) 反对(0) soulsjie | 园豆:277 (菜鸟二级) | 2022-12-14 14:37

@soulsjie: Whicut prams=new Whicut(); 输入后有红色波浪线错误提示:不包含采用“0”个参数的构造函数 ??

支持(0) 反对(0) tea2007 | 园豆:7 (初学一级) | 2022-12-14 17:39

@tea2007:
就是说你的这个类Whicut ,的构造方法是有参数的,你自己看看传参数过去就行
Whicut prams=new Whicut(参数);

支持(0) 反对(0) soulsjie | 园豆:277 (菜鸟二级) | 2022-12-14 17:41

@soulsjie:
public Whicut(datatable dthistoryprocess,int index)
{
initializecomponent();
}

你好,类Whicut 构造方法原文是这样的。我这样传出错(见下文)?提示:不包含采用“1”个参数的构造函数 ?
Whicut prams=new Whicut(datatable dthistoryprocess,int index); ?

支持(0) 反对(0) tea2007 | 园豆:7 (初学一级) | 2022-12-15 17:18

我加参还是出错,已重开新贴,麻烦看看,谢谢

支持(0) 反对(0) tea2007 | 园豆:7 (初学一级) | 2022-12-16 11:03
0

我加参还是出错,已重开新贴,麻烦看看,谢谢

tea2007 | 园豆:7 (初学一级) | 2022-12-16 11:04

DataGrid dataGrid=(DataGrid) sender;
DataView dv=(DataView)dataGrid.ItemsSource;
DataTable dt=dv.ToTable();
Whicut ts=new Whicut(dt,1);
Stem(ts);

自己解决了,谢谢大家!

支持(0) 反对(0) tea2007 | 园豆:7 (初学一级) | 2022-12-16 17:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册