如何解决在当前条件下不存在 C# 更好的写法?
我有 3 个图片框,都允许为空值。我想做的是写出所有可能的 if 条件;我尝试分配变量,但我的变量超出了范围。任何更好的解决方案,请
MemoryStream ms = new MemoryStream();
if (imGuest != null)
{
imGuest.Save(ms,ImageFormat.Png);
byte[] arr = ms.ToArray();
}
else
{
int? arr = null ;
}
if (imDoc != null)
{
imDoc.Save(ms,ImageFormat.Png);
byte[] arrDoc1 = ms.ToArray();
}
else
{
int? arrDoc1 = null;
}
if (imDoc2 != null)
{
imDoc2.Save(ms,ImageFormat.Png);
byte[] arrDoc2 = ms.ToArray();
}
else
{
int? arrDoc2 = null;
}
using (sqlCommand cmd = new sqlCommand("sp_insert",MainClass.con))
{
// code here
cmd.Parameters.AddWithValue("@img",arr);
cmd.Parameters.AddWithValue("@doc1",arrDoc1);
cmd.Parameters.AddWithValue("@doc2",arrDoc2);
}
解决方法
试试这个方法:
using (var ms = new MemoryStream())
{
Func<Image,byte[]> getImage = (Image img) =>
{
if (img == null)
{
return null;
}
img.Save(ms,ImageFormat.Png);
return ms.ToArray();
};
using (var cmd = new SqlCommand("sp_insert",MainClass.con))
{
// code here
cmd.Parameters.AddWithValue("@img",getImage(imGuest));
cmd.Parameters.AddWithValue("@doc1",getImage(imDoc));
cmd.Parameters.AddWithValue("@doc2",getImage(imDoc));
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。