(c#)这句代码是什么意思?急!!!!

来源:百度知道 编辑:UC知道 时间:2024/06/18 17:48:01
double dBaseAxisLen = bXDir ? (double)destBmp.Height : (double)destBmp.Width;
看验证码的时候看到的,不太明白什么意思,destBmp是drawing.Bitmap型的,请问这句话什么意思?

double dBaseAxisLen ----创建 double(双精度的类型)对象dBaseAxisLen
bXDir ? (double)destBmp.Height : (double)destBmp.Width;

XXX ? YYYY : ZZZZ
意思是 XXX是判断 是否成立,如果成立 执行YYYY, 不成立执行ZZZZ

destBmp是drawing.Bitmap型的,前面加个(double) 的意思就是强制类型转换,把Bitmap.高度、宽度 类型 强制转换成 double 类型,

destBmp.Height 的类型应该是FLOAT(单精度的类型) 类型吧,具体记不清楚了。

三目运算
相当于
if(bXDir)
{
double dBaseAxisLen = (double)destBmp.Height ;
}
else
{
double dBaseAxisLen = (double)destBmp.Width;
|

嗯,大家说得都对。
理解上,bXDir应该是指验证码的排列方向,true代表横向,false代表纵向。
然后分别以height和width为baseAxisLen。

如果bXDir = true 则dBaseAxisLen = destBmp.Height (destBmp的高度)
否则bXDir = false 则 dBaseAxisLen = destBmp.Width

创建一个double的变量dBaseAxisLen。然后判断bXDir是真还是假,是假,则将(double)destBmp.Width的值敷给dBaseAxisLen((double)将这个变量强式转换成double型的)是真,则将(double)destBmp.Height敷给dBaseAxisLen.

d