请教一个小问题:对象参数问题..

菩提998866 2006-08-29 08:29:39
我刚用C#,可以说不会,想写一个方法:check(object checkbox1,string string1),思路是这样:根据一个字符串的值将不同的checkbox和string1传给方法check:
private void check(object checkbox1,string string1)
{
?????这里应该怎么将checkbox1的类定为checkbox?
if (string1 == '1')
checkbox1.checked = true;
else
chedkbox1.checked = false;
}

请高手指教,我还没用过object 的参数.
...全文
235 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
medusa_apple 2006-08-30
  • 打赏
  • 举报
回复
private void check(checkbox checkbox1,string string1)
{
if (string1 == '1')
checkbox1.checked = true;
else
checkbox1.checked = false;
}
yjf_1982 2006-08-30
  • 打赏
  • 举报
回复
或者判断一下checkbox1是不是checkbox类型,是就checkbox cb =(checkbox )checkbox1;
不是就报错,不执行.
yjf_1982 2006-08-30
  • 打赏
  • 举报
回复
private void check(object checkbox1,string string1)
{
checkbox cb =(checkbox )checkbox1;
if (string1 == '1')
cb.checked = true;
else
cb.checked = false;
}
fds2003 2006-08-30
  • 打赏
  • 举报
回复
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
object objchk=(object)CheckBox1;
check(out objchk,"1");
}

private void check(out object checkbox1,string string1)
{
checkbox1 =new object();
CheckBox chk =checkbox1 as CheckBox;
chk=new CheckBox();
if (string1 == "1")
{
chk.Checked = true;
}
else
{
chk.Checked = false;
}
}
但是这有个问题,无法保存CheckBox.Checked=true这个状态,可能LZ的意思就是动态给CheckBox给赋值而已,何必这么大周折呀!

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面

if(!Page.IsPostBack)
{
CheckBox CheckBox1=new CheckBox();
check(out CheckBox1,"1");
Response.Write(CheckBox1.Checked);
}
}


private void check(out CheckBox checkbox1,string string1)
{
checkbox1 =new CheckBox();
if (string1 == "1")
{
checkbox1.Checked = true;
}
else
{
checkbox1.Checked = false;
}
}

页面上显示的true
Knight94 2006-08-30
  • 打赏
  • 举报
回复
to 看过你介绍的文章,但我还是不明白,在你的文章中是自己新定义了类型,而我这儿只是用了C#自身的chechbox类,这样也可以用as吗?我用强制转换,这checkbox类就怎么写?(CheckBox)chickbox1?这样写行吗?

不都是从object类型转成一个具体的类型。
强转为了保证代码安全,需要加上try-catch,而as对于这一点处理就很好。
vagerent 2006-08-29
  • 打赏
  • 举报
回复
是可以的。
菩提998866 2006-08-29
  • 打赏
  • 举报
回复
楼上谢谢:
看过你介绍的文章,但我还是不明白,在你的文章中是自己新定义了类型,而我这儿只是用了C#自身的chechbox类,这样也可以用as吗?我用强制转换,这checkbox类就怎么写?(CheckBox)chickbox1?这样写行吗?
Knight94 2006-08-29
  • 打赏
  • 举报
回复
Item 3: Prefer the is or as Operators to Casts
《Effective C#》Item 3:使用as和is操作符来做类型转换
http://blog.csdn.net/knight94/archive/2006/06/12/791850.aspx

Knight94 2006-08-29
  • 打赏
  • 举报
回复
Sample code as follows:
CheckBox chk = checkbox1 as CheckBox;
if( chk != null )
{
//operate here
}

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧