C# MVC 3-什么是,为什么使用?在方法中-与前一个线程相关的问题,无法上载多个db图像
尼克拉森·金德利几个月前为我解决了一个问题。我当时应该问他,所以这确实是我的错误。如果NickLarsen能够回复,感谢您再次联系我,如果没有,那么其他人是否可以告诉我最恰当的答案。提前谢谢 前一个线程是 NickLarsen使用了下面的代码,我想知道什么是,为什么使用?在代码中。这是代码C# MVC 3-什么是,为什么使用?在方法中-与前一个线程相关的问题,无法上载多个db图像,c#,asp.net,asp.net-mvc-3,C#,Asp.net,Asp.net Mvc 3,尼克拉森·金德利几个月前为我解决了一个问题。我当时应该问他,所以这确实是我的错误。如果NickLarsen能够回复,感谢您再次联系我,如果没有,那么其他人是否可以告诉我最恰当的答案。提前谢谢 前一个线程是 NickLarsen使用了下面的代码,我想知道什么是,为什么使用?在代码中。这是代码 public ActionResult GetImage(int id, int? imageNum) { imageNum = imageNum ?? 0; // here
public ActionResult GetImage(int id, int? imageNum)
{
imageNum = imageNum ?? 0; // here
const string alternativePicturePath = @"/Content/question_mark.jpg";
MemoryStream stream;
SubProductCategory4 z = db.SubProductCategory4.Where(k => k.SubProductCategoryFourID == id).FirstOrDefault();
byte[] imageData = null;
if (z != null)
{
imageData = imageNum == 1 ? z.Image1 : imageNum == 2 ? z.Image2 : imageNum == 3 ? z.Image3 : null; // here
}
if (imageData != null)
{
stream = new MemoryStream(imageData);
}
else
{
var path = Server.MapPath(alternativePicturePath);
stream = new MemoryStream();
var imagex = new System.Drawing.Bitmap(path);
imagex.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
stream.Seek(0, SeekOrigin.Begin);
}
return new FileStreamResult(stream, "image/jpg");
}
这个??如果视图没有为参数imageNum提供值;ImageNum为空时将分配0。如果您有一个1,那么当它为空时将分配1。??如果视图没有为参数imageNum提供值;ImageNum为空时将分配0。如果您有一个1,那么当它为空时将分配1。这是运算符。语法是:
condition ? <value if true> : <value if false>
编辑
这个在这个方法中,实际上有三种不同的用法。
第一种方法如上所述。第二个int?
表示此值是可为null的int。它可以为null或int
第三种称为coalescing,它看起来像imageNum=imageNum??0;代码>
这意味着您正试图将imageNum的值分配给imageNum,如果imageNum为null,您将给它一个默认值0
这是一种更紧凑的方式:
if(imageNum == null)
imageNum = 0;
是接线员。语法是:
condition ? <value if true> : <value if false>
编辑
这个在这个方法中,实际上有三种不同的用法。
第一种方法如上所述。第二个int?
表示此值是可为null的int。它可以为null或int
第三种称为coalescing,它看起来像imageNum=imageNum??0;代码>
这意味着您正试图将imageNum的值分配给imageNum,如果imageNum为null,您将给它一个默认值0
这是一种更紧凑的方式:
if(imageNum == null)
imageNum = 0;
??那么??你的逻辑是什么?是指在1和2 1:2之间进行选择??本质上是短路吗?。有意义吗?那么??你的逻辑是什么?是指在1和2 1:2之间进行选择??本质上是短路吗?。有道理吗
int x = y != null : 0
分解成
if (y != null)
x = y;
else
x = 0;
翻译成英语是“
除非y为空,否则X等于y。如果y为空,则X等于0
您可以通过以下说明进一步简化此过程:
整数x?=y×0
分解成
if (y != null)
x = y;
else
x = 0;
翻译成英语是“
除非y为空,否则X等于y。如果y为空,则x等于0
您可以通过以下说明进一步简化此过程:
int x?=Y0可能的重复,很难说,在这个例子中是三元运算符、合并运算符和可空类型。很抱歉,我不知道有人问过类似的问题可能的重复,很难说,在这个例子中是三元运算符、合并运算符和可空类型。很抱歉,我不知道有人问过类似的问题谢谢你的查看快速回复。谢谢你的查看快速回复。谢谢你的查看快速回复。当你想对值类型使用null coalesce语法时,它会变得更有趣,你会得到类似于“??”的代码:int value=会话[“anitvalue”]作为int??0;感谢您查看快速响应。当您希望对值类型使用null coalesce语法时,它会变得更有趣,您会得到类似于“??”的代码:int value=会话[“anitvalue”]作为int??0;