tengo este segmento de código en VB NET
:¿Cómo traducir CType de VB.Net() para C#
CType(pbImageHolder.Image, Bitmap).SetPixel(curPoint.X, curPoint.Y, Color.Purple)
lo que es el código apropiado en C#
?
Gracias de antemano.
tengo este segmento de código en VB NET
:¿Cómo traducir CType de VB.Net() para C#
CType(pbImageHolder.Image, Bitmap).SetPixel(curPoint.X, curPoint.Y, Color.Purple)
lo que es el código apropiado en C#
?
Gracias de antemano.
En VB.Net CType(object, type)
arroja un objeto a un tipo específico.
Hay dos maneras de lograr esto en C#:
Bitmap image = pbImageHolder.Image as Bitmap;
image.SetPixel(curPoint.X, curPoint.Y, Color.Purple);
o
Bitmap image = (Bitmap)(pbImageHolder.Image);
image.SetPixel(curPoint.X, curPoint.Y, Color.Purple);
((Bitmap)pbImageHolder.Image).SetPixel(curPoint.X, curPoint.Y, Color.Purple)
Con '((Bitmap) pbImageHolder.Image)' su intento de convertir pbImageHolder a Bitmap, que probablemente no funcionará. Lo siguiente arrojará la imagen: '(Bitmap) (pbImageHolder.Image)' –
@DennisTraub: está equivocado, vea la especificación del lenguaje C#, sección 7.3.1 "Preferencia del operador y asociatividad" (http://go.microsoft.com). com/fwlink /? LinkId = 199552). Operador de acceso de miembro "." tiene precedencia sobre el operador de reparto, por lo tanto, las expresiones como '(TypeWichCastTo) variable.Member' se evaluarán de esta manera: 1) acceder' Member' of 'variable' first; 2) luego convierte 'Member' a' TypeWichCastTo'. – Dennis
En realidad, tienes razón. Gracias por la explicación. –
Hola este es el código después de VB conversión a código C#:
((Bitmap)pbImageHolder.Image).SetPixel(curPoint.X, curPoint.Y, Color.Purple);
Y si desea la conversión de código de VB a C# y viceversa vaya a través del siguiente enlace: http://www.developerfusion.com/tools/convert/vb-to-csharp/
1) La primera opción que proporcionó requiere fuertemente la verificación nula; 'as' no está destinado a casos de uso sin verificación nula del resultado y no puede posicionarse como equivalente directo del operador' CType' de VB; 2) La segunda opción tiene corchetes innecesarios, ver respuesta a su comentario a continuación. Por lo tanto, votado negativamente, especialmente para el uso negligente 'como'. – Dennis
Como dijo Dennis, no use 'as' en casos como este. Podría llevar a una 'NullReferenceException' no informativa. –
@Dennis es un buen consejo, pero no es necesario rechazarlo solo por eso. La respuesta sigue siendo útil – SysDragon