字符串和系统窗体对话框之间没有隐式转换

本文关键字:转换 之间 系统 窗体 对话框 字符串 | 更新日期: 2023-09-27 17:51:03

我得到错误。我喜欢在点击按钮

后,如果单元格为空,则显示消息对话框
 var name = dataGridView1.Rows[0].Cells[1].Value != null ? dataGridView1.Rows[0].Cells[1].Value.ToString() : MessageBox.Show("Cell is empty") ;

字符串和系统窗体对话框之间没有隐式转换

你不能那样做。因为文档说:

first_expression和second_expression的类型必须是相同的,或者存在从一种类型到另一种类型的隐式转换。

使用if语句代替:

string name;
if(dataGridView1.Rows[0].Cells[1].Value == null)
{
   MessageBox.Show("Cell is empty");
}
else
{
   name = dataGridView1.Rows[0].Cells[1].Value.ToString();
}

请不要这样做,Selman22的回答应该是正确的。

但只是为了好玩:(返回值"OK", "取消"等当消息框显示)

var name = dataGridView1.Rows[0].Cells[1].Value != null ? dataGridView1.Rows[0].Cells[1].Value.ToString() : new Func<string>(() => MessageBox.Show("Cell is empty").ToString())();